什么构建步骤应该用于在TeamCity中运行QUnit测试?

时间:2015-11-10 08:21:52

标签: unit-testing msbuild teamcity qunit chutzpah

我目前有两个步骤的TeamCity构建配置:

  • 的MSBuild
  • 执行powershell sciprt

我想再添一个:

  • 运行QUnit测试

在Visual Studio中我使用Chutzpah来运行我的QUnit测试。似乎没有" Runner类型"虽然对于QUnit测试是合适的,并且因为我确实看到一个用于NUnit,我想知道我是否正确地看着这个。

我应该获得一个TeamCity扩展来添加" Runner类型"对于QUnit测试?我应该创建一个运行chutzpah-console的powershell脚本吗?如果是这样,我应该如何确保TeamCity获取测试输出(我需要/nunit2/junit标志吗?)?

我做过一些研究,请允许我分享......

我已经应用了我的Google-fu,但这会导致a blog post with complicated QUnit tests with special TeamCity messages(或者我误解了?)和a blog post on using a command-line build step to call PhantomJS使用了一个相当人为的html文件,这对我来说似乎有点过头了如果我已经在Visual Studio中使用Chutzpah了(或者我误解了)?

我已经完成了the Chutzpah Full Documentation但是就CI来说它只有a section on TFS Build,一般来说没有关于TeamCity或CI的任何内容。我仔细查看了the command line options documentation,它确实有一个相关选项:

/teamcity     :Forces TeamCity mode (normally auto-detected)

这表明你通常不需要做任何事情以使事情有效,但事实并非如此:我的sln(或更好: csproj)包含几个带有QUnit测试的js个文件,但TeamCity没有显示任何测试。

那么,如何让TeamCity以(c)最简洁的方式运行QUnit测试/如何在TeamCity构建步骤中使用Chutzpah?

1 个答案:

答案 0 :(得分:2)

不需要"服务消息"或者如果您已经使用Chutzpah,那么进入特殊PhantomJS调用的自定义html文件。这是(c)精益方式的一种(另一种)方式。

此类构建步骤没有特定的运行器类型。但也不需要自定义Powershell脚本:它只是一行脚本。您可以使用Command Line步骤来调用Chutzpah。为了更完整,假设您已经在Windows计算机上运行了TeamCity,请按照以下步骤操作:

  1. 安装chutzpah.console.exe。最简单的方法是使用chocolatey在Powershell中使用此命令安装Chutzpah package

    choco install chutzpah
    

    这将安装Chutzpah,并确保exe在您的路径中(您可能需要重新启动TeamCity部件才能注意到这一点!)。

    请注意,您也可以以某种方式在CI服务器上手动获取chutzpah.console.exe(例如从您的开发机器中获取)并使用完整路径引用它或自己将其放在路径中。

    < / LI>
  2. 使用如下自定义脚本添加Command Line构建步骤:

    chutzpah.console.exe "MyProject/UnitTestsSubDir"
    

    E.g:

    Build step configuration in TeamCity

  3. 通过一些黑魔法,这就是它所需要的:你的测试将被运行(参见构建日志),TeamCity将获得测试结果。