2017-02-02 27 views
2

我们正在使用SpecFlow申请BDD实践和酱菜生成的文档。MSBuild的说法让泡菜进口检验结果导致非法路径错误

我们的构建是这样的:

  1. 构建
  2. 部署
  3. 测试(使用VSTest)
  4. 生成文档(使用酱菜)

的生成文档的步骤来后测试步骤,所以我们可以将测试结果包括在腌菜中。我想用咸菜作为构建步骤,这样我就可以管理泡菜版本使用和其他选项中的每个解决方案。

在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"取代它有一点问题都没有,都没有发现只有testresults因为testresults处于非预测格式:
USERNAME_SERVERNAME1234 2017-02-02 09_09_09.trx

我想看看为.trx文件生成通用名称,但VSTest不支持自定义名称。有没有其他人遇到这个问题,是否有一个很好的方法来解决它?

+1

有可能没有其他的选择,而不是找出确切的文件名。这是不是太硬,它内置的MSBuild功能,原则将是一个自定义的“PicklesResultsDir”传递给了该项目,并withing项目具有的MSBuild查找文件与''。你不说你的解决方案/项目布局是什么,所以我不能告诉你究竟在哪里放置这个逻辑。 – stijn

回答

2

酱菜只支持测试结果文件的确切名称。有在GitHub的项目现场,让通配符的issue。作为Pickles的维护者,我很乐意回顾解决这个问题的任何pull请求。

+0

嗨@ dirk-rombauts,谢谢你的优秀产品。我会研究它,也许我甚至可以推动修复! (我有一个真实的测试用例:)。)。现在我通过用另一个构建步骤重命名.trx文件来解决它。 – AutomatedChaos

+0

我很高兴你找到了一种方法使它适合你!随意问我是否还有其他酱菜相关的东西可以帮到你。 –

+0

@ Cece-MSFT完成。适时更新(即支持通配符)。 – AutomatedChaos

0

在请求:这是我如何解决它。它更是一个解决办法,在我的特定情况下工作,但在底部我解释我是如何希望它会尽快修复。

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

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

  1. As解决方案集$(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" 
    

正如我所说的,重命名是一个有点变通,所以我延长泡菜本身的代码来启用通配符支持,现在是a pull request in the pickles repo,所以希望它可以在下一个版本中实现,并且你可以使用它:)。