我目前正在尝试使用FAKE自动化我的构建。它到目前为止工作正常,但我的问题是测试目标在一次测试失败后立即失败。相反,我希望它继续执行所有测试项目,以便获得包含所有测试结果的完整构建报告。
我的测试目标如下:
Target "Test" (fun _ ->
trace " --- Run tests --- "
getAllTestProjectJsons
|> Array.iter(fun (fileInfo) ->
(DotNetCli.Test (fun p ->
{p with AdditionalArgs = ["-xml"; buildTestResultPath testResultDir fileInfo]; WorkingDir = fileInfo.DirectoryName}
)
))
)
其中getAllTestProjectJsons
只返回一个FileInfo
个对象数组,其中包含所有测试项目的project.json
个文件的位置。
现在,只要一个测试项目的测试失败,测试目标就会停止执行不同的测试项目。它应该做的是继续执行所有测试项目,然后报告所有测试是否成功。然后我可以将生成的xml文件转换为JUnit格式(这是Bamboo所必需的),无论测试是否失败。 但是,只有在所有测试都成功的情况下才能执行其他目标,例如创建nuget包。
用FAKE有一种优雅的方法吗?