是否有用于以编程方式运行 Visual Studio 单元测试的 API?
使用 Process.Start() 运行 MSTests.exe 在当前方案中不起作用。我正在寻找的是类似于 NUnit SimpleTestRunner 的东西。
有任何想法吗?
/埃里克
最佳答案
您是正确的,因为 mstest 框架没有公共(public) API。有一天我为 mstest 写了一个手动替换,看看它有多难,而且它并不像看起来那么简单(特别是如果你想利用多个 CPU 内核),所以要小心走这条路。
就我个人而言,我一直只是运行 mstest.exe
以编程方式解析结果 .trx
XML 文件。有什么特殊原因不能使用 Process.Start
运行它?
附言如果您通过 /noisolation
,mstest.exe 的一些奇怪行为会得到解决。命令行参数 - 如果您愿意,请尝试一下 :-)
更新:Erik 提到他想在当前线程中运行测试 API,以便为全局化问题设置线程文化。
如果您在调试器下运行单元测试,您会注意到 mstest 创建了一堆线程,并在不同的线程中运行您的所有测试,因此即使您可以访问 API,这也不太可能工作。
我建议这样做:
[ClassInitialize]
(或 [TestInitialize]
)读取此环境变量并设置文化的方法 关于visual-studio - 是否有用于以编程方式运行 Visual Studio 单元测试的 API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2054994/