有没有办法使用某些库以编程方式使用MSTest执行测试用例

时间:2018-06-06 11:49:55

标签: c# unit-testing testing dll mstest

我对使用MSTest.exe或通过测试资源管理器执行但不是通过普通的c#代码(不使用Process)感兴趣。 我想要一个外部用户可以使用webAPI触发测试执行的功能,并将trx结果作为响应返回。我可以使用Process对象调用MSTest.exe来实现这一点。但问题是我不能在我的Web服务器上安装MSTest.exe,其中要托管webAPI(触发测试运行),因此我无法继续使用Process对象(或批处理文件执行)。 我认为一个可能的解决方案是,如果有任何dll或nuget包允许执行传递给MSTest.exe的类似参数的测试用例(如测试项目dll,类别等),那么我不需要在我的网站上安装MSTest.exe服务器而不是我可以调用该DLL,获取结果并返回它们。 但我不确定是否有这样的dll或nuget包。

2 个答案:

答案 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。