Согласен, вы должны писать правильные модульные тесты, которые тестируют изолированно, но в конечном итоге вам придется тестировать на предмет конкретных зависимостей.Чтобы написать интеграционные тесты, работающие против внешнего процесса, есть несколько вариантов сделать это:
Запуск / остановка TestRun
В MSTest вы можете выполнить общую настройкуинициализация перед выполнением любого теста с использованием AssemblyInitializeAttribute .Обратите внимание, что методы должны быть статическими.
[TestClass]
public class AssemblyTestHarness
{
[AssemblyInitialize]
public static void InitializeAssembly(TestContext context)
{
// start process here
}
[AssemblyCleanup]
public static void CleanupAssembly(TestContext context)
{
// clean-up process here
}
}
Запуск / остановка тестового устройства
Если вам нужно запустить и остановить сервис между сериями тестов, выможет запускать и останавливать сервис при инициализации и очистке прибора.
[TestClass]
public class MyTestFixture
{
[ClassInitialize]
public static void InitializeFixture(TestContext context)
{
// start process here
}
[ClassCleanup]
public static void CleanupFixture(TestContext context)
{
// clean-up process here
}
}