我正在开发Windows Phone 8.1应用程序。此应用程序具有使用MSTestFramework实现的单元测试。要运行测试,我们需要使用 vstest.console.exe并为单元测试项目生成一个 .appx 文件。现在我需要使用 OpenCover 来分析测试并获取覆盖率报告。
我正在遵循本教程,但到目前为止我无法让它工作。
根据教程,我创建了一个包含以下行的批处理文件:
vstest.console.exe myApp_1.0.0.0_x86_Debug.appx /Settings:C:TestTest.runsettings /logger:trx
然后,我使用以下命令调用 OpenCover:
OpenCover.Console.exe -target:C:TestmyBat.bat -register -output:out.xml
但这会导致缺少 PDB 异常。上面的命令实际上启动了所有测试,我可以看到 vstest.console 已经创建了一个 trx 文件,并且所有测试都通过了,但 OpenCover 没有生成任何报告。
我也尝试使用以下命令:
OpenCover.Console.exe -target:C:TestmyBat.bat -register -output.xml -targetdir:<TargetDir>
在TargetDir
字段中,我尝试给出myProjectobjx86Debug
的路径 - 因为它包含 PDB 文件。在这不起作用之后,我尝试给TargetDir
myProjectAppPackagesmyProject_x86_Debug_Test
路径 - 它包含 appx 和 appxsym 文件。最后,我尝试将所有文件从Debug
文件夹复制到应用程序包文件夹中,但这也不起作用。
我猜OpenCover还没有准备好为Windows Phone应用程序提供覆盖。如果OpenCover支持Windows Phone Apps,那么我想知道我的方法中是否存在任何错误。
我目前有同样的问题,所以我还不能提供答案。但是你有没有尝试过-register:user而不是-register?
openCover.Console.exe -target:C:TestmyBat.bat -register:user -output:out.xml