如果我使用 mstest.exe 生成代码覆盖率,Dotcover 工作正常,但如果我的测试使用 MSFakes,则 mstest.exe 不起作用。所以我别无选择,只能使用 vstest.console。如果我使用 Vstest.console 它适用于“带有假货的 MS 测试”,但报告代码覆盖率为 0%。只是为了测试,我创建了另一个不使用 MSfakes 的单元测试项目,即使对于这个项目 vstest.console 报告代码 covegare 为 0%。
我正在使用 powershell 脚本来自动化单元和集成测试过程。下面是我的代码。我在这里想念什么?或者 dotcover 不支持此功能?
$TestDlls = "D:\project.tests1\bin\Output\Org.Namespace.Domain.Project.Tests.dll","D:\project.tests\bin\output\Org.Namespace.Domain.Project.Tests.dll"
$MsTestExePath = "C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\Vstest.console.exe"
$dotCoverExePath = "C:\Program Files (x86)\JetBrains\dotCover\v2.7\Bin\dotCover.exe"
$snapshotFileName = "UnitTests.dcvr"
$WorkingDir = Get-Location
$MsTestArgs = $TestDlls + " /inIsolation /Platform:x64 /Framework:Framework45"
exec { & $dotCoverExePath cover /TargetExecutable=$MsTestExePath /TargetArguments=$MsTestArgs /TargetWorkingDir=$WorkingDir /Output=$snapshotFileName }