【问题标题】:How to pass arguments to the Fitnesse .NET command line task runner如何将参数传递给 Fitnesse .NET 命令行任务运行程序
【发布时间】:2009-10-10 05:09:54
【问题描述】:

我有一个 Fitnesse.NET 验收测试套件,我想在我的 TFS/MSBuild CI 构建中运行它。

该套件包含一些我在构建过程中调用时需要覆盖的 Fitnesse 变量,例如:

!define ConnectionString {Data Source=...}

从命令行测试运行程序调用套件时,如何覆盖套件中定义的变量值?

我希望能够做类似的事情:

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

有什么想法吗?

【问题讨论】:

    标签: .net command-line fitnesse


    【解决方案1】:

    第一个答案的符号链接技巧效果很好。

    另一种解决方案是使用环境变量或java变量。任何环境或 java 变量都可以从 Fitnesse 页面访问,就好像它是一个变量一样。因此,如果您在健身页面上有 ${MYVAR},并且您有 MYVAR 环境或 java 变量,那么它将使用环境或 java 变量的值。

    【讨论】:

    • 我希望 FitNesse 网站上有一个部分来演示该功能! :)
    【解决方案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
    

    然后运行器可以让页面作为参数运行,如下所示:

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

    【讨论】:

    猜你喜欢
    • 2010-10-23
    • 2018-06-22
    • 1970-01-01
    • 2013-07-12
    • 2011-05-20
    相关资源
    最近更新 更多