簡體   English   中英

如何將參數傳遞給Fitnesse .NET命令行任務運行器

[英]How to pass arguments to the Fitnesse .NET command line task runner

我有一個Fitnesse.NET驗收測試套件,我希望它作為我的TFS / MSBuild CI版本的一部分運行。

該套件包含一些Fitnesse變量,我需要在構建過程中調用時重寫這些變量,例如:

!define ConnectionString {Data Source=...}

從命令行測試運行程序調用套件時,如何覆蓋套件中定義的變量值?

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

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

有任何想法嗎?

第一個答案的符號鏈接技巧很好用。

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

我不確定將一個傳遞給跑步者的方法,但是您可以制作以不同方式定義變量的符號頁面,然后您只需調用不同的頁面。 例如,在我們的設置中,我們可以使用內存存儲庫或使用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

然后跑步者可以將頁面作為這樣的參數運行:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM