我在尝试通过 OpenCover 运行 VS10 测试套件时遇到问题,使用 mstest 作为我的目标应用程序。使用 MsTest 直接运行测试可以使用以下命令:
"C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\MSTest.exe" /resultsfile:"<application_root_path>\UnitTestResults\MyProject.vsmdi.trx" /testmetadata:"MyProject.vsmdi" /testlist:"ServiceTests" /testlist:"DatabaseTests"
但是,当尝试在 OpenCover 下运行相同的命令时,如下所示:
OpenCover\Opencover.console.exe -register:user -target:"C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\MSTest.exe" -targetargs:"/resultsfile:"<application_root_path>\UnitTestResults\MyProject.vsmdi.trx" /testmetadata:"MyProject.vsmdi" /testlist:"ServiceTests" /testlist:"DatabaseTests"" -output:<application_root_path>\UnitTestResults\Coverage
关于 .vsmdi.trx 文件(我收集的文件应该在测试运行后由 MsTest 创建)失败,并出现以下错误:
Error occurred while loading document '<application_root_path>\UnitTestResults\MyProject.vsmdi.trx'.
Code: 0x800c0006
The system cannot locate the object specified.
因此,基本上,它抱怨在运行测试之前找不到结果文件,但该文件应该在运行结束时创建。
这可能是与 OpenCover 相关的问题,因为直接使用 mstest 运行时相同的参数有效?
我检查了我的路径,它们都解决了,即使错误中的路径是 mstest 应该生成文件的路径。
谢谢。