2017-09-22 5 views
3

케이크 빌드를 사용 중이며 케이크 단위 테스트 결과를 AppVeyor에 업로드하려고 시도하지만 Cake/Nunit3이 로컬에서 실행될 때 빈 결과를 생성하며 그 원인이 무엇인지 추측합니다 AppVeyor의 오류. 아래 블록에서는 NUnitResults.xml이 생성되지만 항상 비어 있습니다.케이크 빌드 및 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 경로가 아닙니다.

답변

5

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

놀랍습니다 - 이렇게하면 저에게 많은 시간을 절약 할 수 있었을 것입니다. 워드 프로세서가 훌륭하지 않으며 이것이 가장 직관적 인 구성이 아니라고 말해야합니다. –