我对使用MSTest.exe或通过测试资源管理器执行但不是通过普通的c#代码(不使用Process)感兴趣。 我想要一个外部用户可以使用webAPI触发测试执行的功能,并将trx结果作为响应返回。我可以使用Process对象调用MSTest.exe来实现这一点。但问题是我不能在我的Web服务器上安装MSTest.exe,其中要托管webAPI(触发测试运行),因此我无法继续使用Process对象(或批处理文件执行)。 我认为一个可能的解决方案是,如果有任何dll或nuget包允许执行传递给MSTest.exe的类似参数的测试用例(如测试项目dll,类别等),那么我不需要在我的网站上安装MSTest.exe服务器而不是我可以调用该DLL,获取结果并返回它们。 但我不确定是否有这样的dll或nuget包。
答案 0 :(得分:0)
您提供的信息很少:
是的,有一种方法,您可以创建一个.bat
文件来在项目文件中执行Target
。或者您可以直接从cmd或powershell执行它们。
"msbuild" yourproject.proj /target:RunTest
答案 1 :(得分:0)
使用NUnit测试框架是可能的,因此我没有使用MSTest而是切换到NUnit。
ITestEngine engine = TestEngineActivator.CreateInstance();
TestPackage package = new TestPackage("path/to/assembly");
ITestRunner runner = engine.GetRunner(package);
XmlNode result = runner.Run(this, TestFilter.Empty);
添加nuget packages'nunit.engine.api'和'nunit.engine'以便使用它。假设这些调用的类实现了ITestEventListener。