2017-02-02 25 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,所以希望它可以在下一個版本中實現,並且你可以使用它:)。