У меня есть проект. NET Core NUnit Test, который содержит несколько TestFixtures
со многими Tests
. Я могу запустить этот проект из Visual Studio и увидеть результаты теста в специальном окне Результаты теста Visual Studio.
Теперь я хотел бы создать консольное приложение, которое будет запускать эти тесты каждый раз. 5 минут и сохраните результаты каждого теста (прошел ли он успешно? Сколько времени он выполнял? Если были исключения, что они сказали? Et c ...). Итак, в псевдокоде я хотел бы сделать что-то вроде:
var testsResults = RunTests("my NUnit test project from NuGet");
StoreResultsInDataBase(testResults);
Как бы я реализовал метод RunTests
? Я нашел этот пост на SO: Как запустить NUnit из моего кода В одном из ответов показан код, подобный следующему:
TestPackage package = new TestPackage(@"C:\YourProject.Tests.dll");
RemoteTestRunner remoteTestRunner = new RemoteTestRunner();
remoteTestRunner.Load(package);
TestResult result = remoteTestRunner.Run(new NullListener());
Кажется, он делает именно то, что мне нужно. Я пытался его использовать, однако у меня были проблемы с классом TestPackage
. Я нашел его только в пакете NUnitTestAdapter.WithFramework
, который представляет собой проект NET Framework от NuGet (мне нужно использовать. NET Core).
Есть ли решение, с которым можно работать. NET Ядро? Единственное решение, которое я могу придумать, - это использовать отражение, чтобы найти все методы с атрибутом [Test]
и запустить их. Тем не менее, это будет немного проблематично c, так как мои тесты также используют [Order]
и должны выполняться в правильном порядке.