Запустите TestMethod с разными наборами данных, а НЕ из базы данных - PullRequest
0 голосов
/ 11 ноября 2010

Таким образом, TestMethod запускается только один раз за один прогон теста.

Как я могу в одном прогоне теста запускать TestMethod несколько раз, каждый раз для другого набора данных, который я настроил?Мои данные не приходят из базы данных или файла;Я хочу создать несколько различных экземпляров макета тестовых данных в памяти.

TestInitialize не позволяет мне сделать это, поскольку он также выполняется только один раз.

Что контролируетвыполнение TestMethods?Как сделать так, чтобы мои TestMethods перезапускались для каждого набора данных и как я тогда получаю доступ к набору данных?

Я думал, что TestContext будет полезен, но, похоже, это только база данных?

Ответы [ 2 ]

1 голос
/ 11 ноября 2010

То, что вы ищете, это так называемое Тестирование на основе данных . Смотри например здесь и здесь для описания того, как это сделать с помощью MSTest.

НТН.
Томас

0 голосов
/ 11 ноября 2010

Вы можете определить метод тестирования, который будет вызывать другой метод тестирования несколько раз, после выполнения правильной настройки, я не говорю, что это хорошая вещь, но я считаю, что это будет работать

public class TestClass
{
//This is where the per-data-source test is. This is not marked as a TestMehod because
//it will not be invoked directly by the test runner.
public void ActualTest()
{
//Per-data-source test logic here.
}
[TestMethod]
public void RunActualTestsMultipleTimesWithDifferentConfigs()
{

//Setup for test run with data set 1
ActualTest();
//Setup for test with data set 2
ActualTest();
}
}

Это похоже на ужасный, ужасный взлом, я свободно признаю это.Я бы не использовал это сам, если бы у меня был какой-то другой выбор, но это может быть вариант.

Другая возможность состоит в том, чтобы посмотреть, насколько расширяемый MSTest, в частности, есть ли какой-либо механизм для изменения или расширения.тестовый бегун

...