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

What Build Step should be used for running QUnit tests in TeamCity?

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

我想再添加一个:

在 Visual Studio 我使用 Chutzpah 来 运行 我的 QUnit 测试。似乎没有 "Runner type" 适用于 QUnit 测试,因为我确实看到了一个适用于 NUnit 的测试,所以我想知道我是否在看这个。

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

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

我已经应用了我的 Google-fu but that leads to a blog post with complicated QUnit tests with special TeamCity messages (or perhaps I misunderstood?) and a blog post on using a command-line build step to call PhantomJS,它使用了一个相当做作的 html 文件,如果我已经在 Visual Studio 中使用 Chutzpah(或者也许我误解)?

我已经完成 the Chutzpah Full Documentation but as far as CI goes it only has a section on TFS Build, nothing on TeamCity or CI in general. I've carefully looked through the command line options documentation,它确实有一个相关选项:

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

这表明您通常不需要做 任何事情 来让事情正常进行,但事实并非如此:我的 sln(或更好:csproj) 包含几个带有 QUnit 测试的 js 文件,但 TeamCity 未显示任何测试。

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

如果您已经在使用 Chutzpah,则不需要进入特殊 PhantomJS 调用的 "service messges" 或自定义 html 文件。这是以 (c) 精益方式进行的一种(其他)方法。

这种类型的构建步骤没有特定的 运行ner 类型。 但也不需要自定义 Powershell 脚本:它将是一行仅脚本。您可以只使用 Command Line 步骤来调用 Chutzpah。为了更完整,假设您已经在 Windows 机器上安装了 TeamCity 运行ning,请执行以下步骤:

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

    choco install chutzpah
    

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

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

  2. 使用自定义脚本添加 Command Line 构建步骤,如下所示:

    chutzpah.console.exe "MyProject/UnitTestsSubDir"
    

    例如:

通过一些黑魔法,这就是全部所需:您的测试将是 运行(请参阅构建日志)并且 TeamCity 将获取测试结果。