2009-09-29 103 views
4

我有一個Fitnesse.NET驗收測試套件,我想作爲我的TFS/MSBuild CI構建的一部分運行。如何將參數傳遞給Fitnesse .NET命令行任務運行器

該套件包含了我需要覆蓋從構建過程調用,例如,當一些FitNesse的變量:

!define ConnectionString {Data Source=...} 

我如何可以覆蓋調用命令行套件當套件中定義的變量值測試跑步者?

我希望能夠做這樣的事情:

Tests\TestRunner.exe -v -results test.results localhost 8082 MyTestSuite -P:ConnectionString={MyBuildServerDB} 

任何想法?

回答

2

我不確定如何將一個人傳遞給跑步者,但是你可以使用不同的符號頁來定義你的變量,然後你可以調用不同的頁面。例如,在我們的設置中,我們可以使用內存中的存儲庫或MySQl作爲數據庫運行我們的測試。這使我們能夠非常快地運行整個套件,然後CI可以運行緩慢的套件。

所以我們有兩個包含符號鏈接的頁面。屬性看起來是這樣的:

<?xml version="1.0"?> 
<properties> 
    <Help></Help> 
    <LastModified>20090427102431</LastModified> 
    <Search/> 
    <Suite/> 
    <Suites></Suites> 
    <SymbolicLinks> 
     <MustPass>.FrontPage.MustPass</MustPass> 
    </SymbolicLinks> 
    <saveId>1231186112073</saveId> 
    <ticketId>3122308994585074329</ticketId> 
</properties> 

和內容如下:

!define repository_type {InMemory} 

This is the test suite for in-memory tests. Run this instead of running the !-MustPass-! suite. 

!contents -R2 -g -p -f -h 

然後亞軍可以得到網頁作爲一個PARAM像這樣運行:

.\dotnet\TestRunner -format xml -results results.xml localhost 8080 FrontPage.MemoryMustPass 
+0

天才!這正是我需要的。謝謝 有關符號鏈接的更多信息,請參閱Fitnesse UserGuide:http://fitnesse.org/FitNesse.UserGuide.SymbolicLinks –

3

第一個答案的符號鏈接技巧很好地工作。

另一種解決方案是使用環境變量或java變量。任何環境或java變量都可以從fitnesse頁面訪問,就像它是一個變量一樣。因此,如果在fitnesse頁面上有$ {MYVAR},並且您有MYVAR環境或java變量,那麼它將使用環境或java變量的值。

+1

我希望FitNesse網站上有一節介紹該功能! :) –

相關問題