2014-01-24 19 views
2

我正在使用pickles NuGet包來生成DHTML功能文件網頁,以便它們可以在Intranet站點上發佈。我使用的是相對路徑在VS2012做到這一點從包年齡Manager控制檯內: -將參數傳遞給Pickles Cmdlet/Nuget時相對路徑無法在PowerShell中工作

PM> Pickle-Features -FeatureDirectory .\FIX_SpecflowTests\Specs -OutputDirectory .\FIX_SpecflowTests\Pickles -SystemUnderTestName FIX_SpecflowTests -DocumentationFormat DHTML -TestResultsFile .\FIX_SpecflowTests\bin\Debug\TestResult.xml 

其產生這樣的輸出: -

Pickles v.0.13.1.0 

Generating documentation based on the following parameters 
---------------------------------------------------------- 
Feature Directory   : C:\svn\local\BakeryDemoTest\trunk\AllBakeryDemoTestProjects\FIX_SpecflowTests\Specs 
Output Directory   : C:\svn\local\BakeryDemoTest\trunk\AllBakeryDemoTestProjects\FIX_SpecflowTests\Pickles 
Project Name    : FIX_SpecflowTests 
Project Version   : 
Language     : 
Incorporate Test Results? : Yes 
Test Result Format  : NUnit 
Test Result File   : C:\svn\local\BakeryDemoTest\trunk\AllBakeryDemoTestProjects\FIX_SpecflowTests\bin\Debug\TestResult.xml 
Pickles completed successfully 
PM> 

可愛!然而,由於在安裝更新4的Visual Studio和的NuGet更新,相對路徑已停止工作,所以我得到這樣的輸出,而不是: -

Pickles v.0.13.1.0 

Generating documentation based on the following parameters 
---------------------------------------------------------- 
Feature Directory   : C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\FIX_SpecflowTests\Specs 
Output Directory   : C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\FIX_SpecflowTests\Pickles 
Project Name    : FIX_SpecflowTests 
Project Version   : 
Language     : 
Incorporate Test Results? : Yes 
Test Result Format  : NUnit 
Test Result File   : C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\FIX_SpecflowTests\bin\Debug\TestResult.xml 
Pickle-Features : Could not find a part of the path 'C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\FIX_SpecflowTests\Specs'. 
At line:1 char:16 
+ Pickle-Features <<<< -FeatureDirectory .\FIX_SpecflowTests\Specs -OutputDirectory .\FIX_SpecflowTests\Pickles -SystemUnderTestName FIX_SpecflowTests -DocumentationFormat DHTML -TestResultsFile .\FIX_SpecflowTests\bin\Debug\TestResult.xml 
+ CategoryInfo   : NotSpecified: (:) [Pickle-Features], DirectoryNotFoundException 
+ FullyQualifiedErrorId : System.IO.DirectoryNotFoundException,PicklesDoc.Pickles.PowerShell.Pickle_Features 

PM> 

正如你所看到的,正在使用的基本路徑是在VS2012安裝目錄中,而不是解決方案目錄。有誰知道如何正確設置程序包管理器的「基本」路徑以找出相對路徑?

最終我想從VS2012外部運行它作爲Powershell腳本,但我認爲我需要從Package Manager開始工作!

回答

1

我沒有完全找到答案,但我找到了一個解決方法 - 只是實施PowerShell腳本。我用一個片段從Run NUnit tests from powershell爲導向,以做到這一點 - 我會在這裏總結一下我實際做: -

  1. 獲取當前目錄,並將其存儲(假設我在一個項目目錄)
  2. 並且升了一級和存儲此(假設我現在是在解決方案目錄)
  3. 我的設置輸出文件夾通過NUnit的
  4. 運行測試(我只是這樣做的發佈版本,不調試)
  5. run pickle
  6. 運行specflow報告

    $了ScriptPath = $ MyInvocation.MyCommand.Path $ DIR =拆分路徑$了ScriptPath CD $ DIR CD ../ $ SolutionDir = GET-位置 $ OUTDIR =「$ DIR \ BIN \發佈」

    $ NUnit的= 「$ SolutionDir \包\ NUnit.Runners.2.6.3 \工具\ NUnit的-console.exe」

    $測試=(GET-ChildItem $ OUTDIR -Recurse - 包括* Tests.dll)

    & $ nu我的軟件包位於$ SolutionDir /包\ Pickles.0.13.1.0 \ TOOLS \ PicklesDoc.Pickles.PowerShell.dll」 導入模塊$ SolutionDir /包\ Pickles.0.13.1.0 \ TOOLS \ PicklesDoc.Pickles.PowerShell.dll 味酸,特色-FeatureDirectory $ DIR \規格-OutputDirectory $目錄\醬菜-SystemUnderTestName FIX_SpecflowTests -DocumentationFormat DHTML -TestResultsFile $目錄\ BIN \發佈\ TestResult.xml

    CD $ DIR $ specflowReporter =「$ SolutionDir \包\ SpecFlow.1.9.0 \工具\ specflow.exe「 $ proj =」FIX_SpecflowTests。的csproj 「 $ XML = 」$ OUTDIR \ TestResult.xml「

    & $ specflowReporter nunitexecutionreport $ PROJ/xmlTestResult: 」$ XML「 /out:"$OutDir\TestResult.html」

+0

如果有人知道如何回答如何設置包管理器的工作方式的原始問題它是相對路徑的基本路徑我仍然很感謝答案! – Dave00Galloway

相關問題