有什么方法可以使用某些库以编程方式使用 MSTest 执行测试用例

Is there any way to execute test cases with MSTest programatically using some library

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

有了你提供的那一点信息:

是的,有一种方法,您可以创建一个 .bat 文件来在项目文件中执行 Target。或者您可以直接从 cmd 或 powershell 执行它们。

"msbuild" yourproject.proj /target:RunTest

使用 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 包 'nunit.engine.api' 和 'nunit.engine' 以便使用它。 Class 假设进行这些调用是为了实现 ITestEventListener。