在TeamCity中使用MBUnit

我正在用TeamCity持续集成服务器编译Linux上的NAnt项目。我已经能够通过在命令行运行程序上运行单声道来生成测试报告,但没有像使用NAnt Runner一样使用报告的选项。我也使用MBUnit作为测试框架。

如何合并测试报告并显示“测试失败:1(1新),通过:3049”构建?

Update: take a look at MBUnitTask its a NAnt task that uses sends messages that TeamCity expects from NUnit so it lets you use all of TeamCity's features for tests.

MBUnitTask

Update: Galio has better support so you just have to reference the Galio MBUnit 3.5 dlls instead of the MBUnit 3.5 dlls and switch to the galio runner to make it work.

0
额外 编辑
意见: 2

4 答案

这是我想出来的

如何在测试报告中合并

首先,您需要让mbunit生成XML和HTML报告。命令行参数看起来像这样

/rt:Xml /rt:Html /rnf:mbunit /rf:..\reports

这将生成报告到一个称为报告的目录中,该文件将被称为mbunit.xml和mbunit.html

接下来我们要将这些文件作为构建中的工件添加

build\reports\* => Reports

最后一步是告诉teamcity将其添加为构建的选项卡

找到.BuildServer \ config \ main-config.xml并添加这一行 (在Windows上这是在C:\ Documents and Settings \,在Linux上它在/根目录)


如何显示“测试失败:1(1新),通过:3049”用于构建?

TeamCity查找名为teamcity-info.xml的文件,您可以在其中显示消息。实际测试计数实际上只是纯文本。我认为你可以将这个文件作为一个神器添加,但是我也已经在构建的根目录中找到了它。

在NAnt中,您将希望使用此命令在MBUnit XML报告上执行XSLT


实际的xsl看起来像这样。 (注意:{和}在xsl中保留,所以我们必须使用params)

<?xml version="1.0" encoding="ISO-8859-1"?>








    
            
             Tests failed: , passed: 
        
    
    
        
             Tests passed: 
        
    






这会给你一个看起来像这样的文件


   
      Tests failed: 16, passed: 88
   

0
额外

TeamCity观看构建的命令行输出。你可以通过在输出中插入特定标记来让它知道你的测试是如何进行的。参见 http://www.jetbrains.net/confluence/display/TCD3/Build+Script+Interaction+with+TeamCity 。例如

##teamcity[testSuiteStarted name='Test1']

将让TeamCity知道一系列测试已经开始。使用MbUnit,您无法在测试运行时输出这些标记,但可以转换它输出的XML文件。以下是我正在使用的XSL:

<?xml version="1.0" encoding="UTF-8"?>

    
    

        

    

    
##teamcity[testSuiteStarted name='']

        

##teamcity[testSuiteFinished name='']
    

    

        
            
        ##teamcity[testIgnored name='' message='Test Ignored']
            
            
        ##teamcity[testStarted name='']
            
        


        
            ##teamcity[testFailed name='' message='' details='']
        


        
        ##teamcity[testFinished name='']
        

    


0
额外

Gallio now has an extension to output TeamCity service messages. Just use the included Gallio.NAntTasks.dll and enable the TeamCity extension. (this won't be necessary in the next release)

0
额外
我有一天更新了这个内容,galio使生活变得如此简单
额外 作者 Scott Cowan,

TeamCity Sidebar Gadget for Windows Vista, Windows 7 http://teamcity-gadget.com

0
额外