如何解决如何使用 OpenCover 进行 XUnit 测试覆盖?
我想将 OpenCover for XUnit 测试覆盖率集成到我的 Visual Studio 项目中。我做了一个小示例项目,只是为了测试集成。
我的示例解决方案 OpenCoverProject 有两个项目。
一个带有 ProgramUT.cs 文件的 XUnit 项目 UnitTests:
public class ProgramUT
{
[Theory]
[InlineData(0,0)]
[InlineData(12,10,2)]
[InlineData(-6,-2,-4)]
public void AddTest(int _expected,int _x,int _y)
{
int actual = MyMathClass.Add(_x,_y);
Assert.Equal(_expected,actual);
}
}
以及带有 Program.cs 文件的主要项目 Learning:
class Program
{
static void Main(string[] args)
{
}
}
public class MyMathClass
{
public static int Add(int x,int y)
{
return x + y;
}
}
我还有一个执行 OpenCover 和 ReportGenerator 的脚本文件。 00 只是更多路径字符串的占位符。
set OpenCoverConsolePath=C:\Users\00\Apps\OpenCover\OpenCover.Console.exe
set XUnitConsolePath=C:\Users\00\packages\xunit.runner.console\2.4.1\tools\net461\xunit.console.exe
set LearningExePath=C:\Users\00\OpenCoverProject\bin\Debug\netcoreapp3.1\Learning.exe
set ReportGeneratorPath=C:\Users\00\ReportGenerator\netcoreapp3.0\ReportGenerator.exe
"%OpenCoverConsolePath%" ^
-target:"%XUnitConsolePath%" ^
-targetargs:"%LearningExePath%" ^
-output:"CodeCoverageResult.xml" ^
-register:user
"%reportGeneratorPath%" ^
-reports:"CodeCoverageResult.xml" ^
-targetdir:"Report" ^
-sourcedirs:"Report"
start Report\index.htm
pause
system.invalidOperationException: UnkNown test framework: Could not find xunit.dll (v1) or xunit.execution.*.dll (v2) in C:\Users\00\OpenCoverProject\bin\Debug\netcoreapp3.1>
我希望 OpenCover 分析每个方法(在我们的例子中只是 Add)都经过 xunit 测试。 我不知道我该如何管理这个。我想目标应该是 xunit.console.exe 并且必须通过 targetargs 以某种方式链接到我的学习项目 Learning.exe。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。