На просторах инета я не нашел решения "как распараллелить DDT в Unit Testing", нашел только информацию, что Microsoft не реализовало данную возможность в Visual Studio 2010.
Так что пришлось выкручиваться.
Вот рабочий пример DDT, распараллеленный на 4 потока.
Создаем TestsMultiThread.csv файл
Вот код для обработки данного файла:
При запуске TestControler распараллеливает 4 метода на 4 виртуальные машины.
Вот результат запуска:
Поток 1
Поток 2
Так что пришлось выкручиваться.
Вот рабочий пример DDT, распараллеленный на 4 потока.
Создаем TestsMultiThread.csv файл
Вот код для обработки данного файла:
using System; using Microsoft.VisualStudio.TestTools.UnitTesting; namespace Wireless.Tests { [TestClass] public class TestTry { [TestClass] public class TestsCoupons { public TestContext TestContext { get; set; } [TestCleanup] public void StopTest() { } [TestInitialize] public void StartTest() { } [ClassInitialize] public static void StartTests(TestContext context) { } private void ExecuteTest(int thread) { var threadcfg = Convert.ToInt16(TestContext.DataRow["Thread"]); if (threadcfg != thread) Assert.Inconclusive("Test not executed"); var var1 = Convert.ToInt16(TestContext.DataRow["Var1"]); var var2 = Convert.ToInt16(TestContext.DataRow["Var2"]); var expResut = Convert.ToInt16(TestContext.DataRow["Result"]); Assert.AreEqual(expResut, var1 + var2); } [DeploymentItem("DDT\\TestsMultiThread.csv"), DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV", "|DataDirectory|\\TestsMultiThread.csv", "TestsMultiThread#csv", DataAccessMethod.Sequential), TestMethod] public void TestThread1() { ExecuteTest(1); } [DeploymentItem("DDT\\TestsMultiThread.csv"), DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV", "|DataDirectory|\\TestsMultiThread.csv", "TestsMultiThread#csv", DataAccessMethod.Sequential), TestMethod] public void TestThread2() { ExecuteTest(2); } [DeploymentItem("DDT\\TestsMultiThread.csv"), DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV", "|DataDirectory|\\TestsMultiThread.csv", "TestsMultiThread#csv", DataAccessMethod.Sequential), TestMethod] public void TestThread3() { ExecuteTest(3); } [DeploymentItem("DDT\\TestsMultiThread.csv"), DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV", "|DataDirectory|\\TestsMultiThread.csv", "TestsMultiThread#csv", DataAccessMethod.Sequential), TestMethod] public void TestThread4() { ExecuteTest(4); } } } }
При запуске TestControler распараллеливает 4 метода на 4 виртуальные машины.
Вот результат запуска:
Поток 1
Комментариев нет:
Отправить комментарий