CAKE 构建和 NUNIT3 生成空结果文件

CAKE build and NUNIT3 generating empty results file

我正在使用 cake build 并尝试将 cake 单元测试结果上传到 AppVeyor,但是当我在本地 运行 时 Cake/Nunit3 生成空结果,我认为这就是导致我的原因AppVeyor 上的错误。在下面的块中,生成了 NUnitResults.xml 但始终为空。

Task("UnitTest")
.IsDependentOn("Build")
.IsDependentOn("Setup")
.Does(() => {
    var resultsFile = artifactsDirectory + "/NUnitResults.xml";
    NUnit3("./StatusPageIo/StatusPageIo.UnitTests/bin/Release/StatusPageIo.UnitTests.dll", new NUnit3Settings()
    {
        OutputFile = resultsFile,           
    });

    if(AppVeyor.IsRunningOnAppVeyor)
    {
        AppVeyor.UploadTestResults(resultsFile, AppVeyorTestResultsType.NUnit3);
    }
});

我知道测试 运行 因为当我在本地 运行 build.ps1 时我看到了测试输出,但是出于某种原因我的特定输出文件的测试输出是空的。如果我将 NoResults 显式设置为 false,我会得到一个 TestResults.xml 文件,但在项目的根目录中,而不是在 resultsFile 路径中。

OutputFile 是保存通常写入控制台的任何测试输出的路径。

您正在寻找 Results - 您可以在其中指定写入测试结果的路径。试试这个:

Task("UnitTest")
.IsDependentOn("Build")
.IsDependentOn("Setup")
.Does(() => {
    var resultsFile = artifactsDirectory + "/NUnitResults.xml";
    NUnit3("./StatusPageIo/StatusPageIo.UnitTests/bin/Release/StatusPageIo.UnitTests.dll", new NUnit3Settings()
    {
        Results = new[] { new NUnit3Result { FileName = resultsFile } },           
    });

    if(AppVeyor.IsRunningOnAppVeyor)
    {
        AppVeyor.UploadTestResults(resultsFile, AppVeyorTestResultsType.NUnit3);
    }
});