的滤饼和NUNIT3产生我使用的滤饼,并尝试上传的蛋糕单元测试结果AppVeyor,但是当我在本地运行蛋糕/ Nunit3都产生空的结果,我认为是什么原因造成我空虚的结果文件

问题描述:

AppVeyor上的错误。在下面的块中,生成NUnitResults.xml,但始终为空。的滤饼和NUNIT3产生我使用的滤饼,并尝试上传的蛋糕单元测试结果AppVeyor,但是当我在本地运行蛋糕/ Nunit3都产生空的结果,我认为是什么原因造成我空虚的结果文件

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); 
    } 
}); 
+1

惊人的 - 这节省了我的时间的负载,永远不会工作了。不得不说这些文档不是很好,这不是最直观的配置。 –