Я знаю, что обычные тестовые тесты на основе ms-тестов можно распараллелить на многоядерной машине (с оговорками, конечно), указав атрибут parallelTestCount в файле .testresults в тестовом решении. Как это,
<Execution parallelTestCount="1">
<TestTypeSpecific />
<AgentRule name="Execution Agents"></AgentRule>
</Execution>
Тем не менее, у меня есть проверочный тест, что-то вроде этого, это всего лишь один тест, но вход поступает из csv и работает 1000s записей через тег тот же.
[DeploymentItem("InputDataRows.csv"), Timeout(37800000), DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV", "|DataDirectory|\\InputDataRow.csv", "InputDataRow#csv", DataAccessMethod.Sequential)]
[TestMethod]
public void RunProcessing()
{
int userId = Convert.ToInt32(TestContext.DataRow[0].ToString());
int connId = Convert.ToInt32(TestContext.DataRow[1].ToString());
string xml = TestHelper.GetDataFromDb(userId, connId);
a = doStuffA(xml);
b = doStuffB(xml);
Assert.IsTrue(a == b);
}
Поскольку это медленный процесс, я рассматриваю распараллеливание этого unit test.
Последовательное перечисление в атрибуте - это способ доступа к данным, другой вариант - Random, который по-прежнему является серийным и не параллельным.