2

我们使用 SpecFlow 来应用 BDD 实践并使用 Pickles 来生成文档。

我们的构建看起来像这样:

  1. 建造
  2. 部署
  3. 测试(使用 VSTest)
  4. 生成文档(使用 Pickles)

生成文档步骤在测试步骤之后,因此我们可以将测试结果包含到泡菜中。我想将泡菜用作构建步骤,因此我可以管理要使用的泡菜版本以及每个解决方案中的其他选项。

TFS2017 中的 Visual Studio 构建步骤如下所示:

/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 不支持自定义名称。有没有其他人遇到过这个问题,有没有很好的方法来解决它?

4

2 回答 2

2

Pickles 仅支持测试结果文件的确切名称。GitHub 项目站点上存在允许通配符的问题。作为 Pickles 的维护者,我很乐意审查任何解决该问题的拉取请求。

于 2017-02-02T11:54:08.780 回答
0

应要求:这就是我解决它的方法。在我的特定情况下,它更像是一种解决方法,但在底部我解释了我希望如何尽快修复它。

  1. 在测试构建步骤之后立即创建命令行构建步骤
  2. 作为工具使用Rename
  3. 作为参数使用"$(build.sourcesdirectory)\TestResults\*.trx" TestResults.trx

现在您可以使用 Visual Studio 构建步骤生成泡菜文档(您需要在项目中将泡菜作为 NuGet 包)

  1. 作为解决方案集$(Build.SourcesDirectory)/yourproject.csproj
  2. 作为 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 本身的代码以启用通配符支持,现在是 pickles repo 中的一个拉取请求,所以希望它在下一个版本中实现,你们都可以以这种方式使用它:)。

于 2017-02-07T10:07:34.647 回答