0

我想将 OpenCover for XUnit 测试覆盖率集成到我的 Visual Studio 项目中。我做了一个小例子项目只是为了测试集成。

我的示例解决方案OpenCoverProject有两个项目。

一个带有ProgramUT.cs文件的 XUnit项目UnitTests :

public class ProgramUT
{
    [Theory]
    [InlineData(0, 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文件学习的主要项目:

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:未知的测试框架:在 C:\Users\00\OpenCoverProject\bin\Debug\netcoreapp3.1 中找不到 xunit.dll (v1) 或 xunit.execution.*.dll (v2)

我希望 OpenCover 能够分析每个方法(在我们的例子中只是Add)都经过 xunit 测试的测试。我不知道我该如何处理。我想目标应该是xunit.console.exe并且必须通过 targetargs 以某种方式链接到我的学习项目Learning.exe

如果有人对此问题有提示或解决方案,那就太好了。

4

0 回答 0