我们正在使用SpecFlow来应用BDD实践和Pickles来生成文档。
我们的构建如下:
生成文档步骤在测试步骤之后,因此我们可以将测试结果包含在pickles中。我想使用泡菜作为构建步骤,因此我可以管理要使用的泡菜版本以及每个解决方案中的其他选项。
TFS2017中的Visual Studio Build步骤如下所示:
/t:DocumentationGeneration
/p:Pickles_Generate=True
/p:Pickles_DocumentationFormat=dhtml
/p:Pickles_ResultsFile="$(build.sourcesdirectory)/TestResults/*.trx"
/p:Pickles_OutputDirectory="$(build.artifactstagingdirectory)/PickledDocumentation"
[some more generic parameters that are not relevant here]
当我执行上述操作时,我会在路径中找到一个非法字符"构建期间出错。似乎导致此错误的*
,当我用/p:Pickles_ResultsFile="$(build.sourcesdirectory)/TestResults/testresults.trx"
替换它时根本没有问题,因为测试结果是非预测格式,所以只找不到测试结果:
USERNAME_SERVERNAME1234 2017-02-02 09_09_09.trx
我试着研究为.trx文件生成通用名称,但VSTest不支持自定义名称。有没有其他人遇到过这个问题,有没有一个很好的方法来解决它?
答案 0 :(得分:2)
Pickles仅支持测试结果文件的确切名称。 GitHub项目站点上有issue允许使用通配符。作为Pickles的维护者,我很乐意回顾任何解决该问题的拉取请求。
答案 1 :(得分:0)
根据要求:这是我解决它的方式。在我的特定情况下,这是一个更有效的工作,但在底部,我解释了我希望它很快就能解决。
Rename
"$(build.sourcesdirectory)\TestResults\*.trx" TestResults.trx
现在,您可以使用Visual Studio Build步骤生成pickles文档(您需要在项目中将pickle作为NuGet包)
$(Build.SourcesDirectory)/yourproject.csproj
由于buildarguments设置了其他参数:
/t:DocumentationGeneration
/p:Pickles_Generate=True
/p:Pickles_DocumentationFormat=dhtml
/p:Pickles_ResultsFile="$(build.sourcesdirectory)/TestResults/TestResults.trx"
/p:Pickles_ResultsFormat="vstest"
/p:Pickles_OutputDirectory="yourdestinationpath"
正如我所说,重命名有点麻烦,所以我扩展了pickles本身的代码以启用通配符支持,现在是a pull request in the pickles repo,所以希望它在下一个版本中实现并且你们都可以这样使用:)。