Модульные тесты Visual Studio: запускать код инициализации перед каждым тестом
Я использую инструменты тестирования Visual Studio для модульного тестирования. Мне нужен код инициализации для запуска перед каждым тестом.
у меня есть Setup
класс для кода инициализации. Я уже добавил код для запуска перед каждым тестом, используя [AssemblyInitialize]
, но я не могу понять, как сделать то же самое на основе одного теста.
Я пытался использовать [TestInitialize]
атрибут, но это относится только к тестам в том же файле, что и [TestInitialize]
метод. Я хотел бы, чтобы код инициализации запускался автоматически для всех тестов в сборке, без необходимости явно вызывать его в каждом тестовом файле.
[TestClass]
public class Setup
{
[AssemblyInitialize]
public static void InitializeTestRun(TestContext context)
{
//... code that runs before each test run
}
[TestInitialize] //this doesn't work!
public static void InitializeTest()
{
//... code that runs before each test
}
}
2 ответа
Следующее должно работать (по крайней мере, это работает с другими тестовыми средами):
- Создайте базовый класс DatabaseIntegrationTests с помощью
TestInitialize
метод - Получите ваши другие тестовые классы из этого базового класса
Это [TestInitialize]
но у вас неправильный синтаксис, он не принимает контекст:
[TestInitialize]
public static void InitializeTests()
{
//... code that runs before each test
}