【问题标题】:What Build Step should be used for running QUnit tests in TeamCity?在 TeamCity 中运行 QUnit 测试应该使用什么构建步骤?
【发布时间】:2015-11-10 08:21:51
【问题描述】:

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

  • MSBuild
  • 执行 powershell sciprt

我想再添加一个:

  • 运行 QUnit 测试

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

我应该获得 TeamCity 扩展来为 QUnit 测试添加“Runner 类型”吗?我应该创建一个运行 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文件,如果我已经在使用Chutzpah,这对我来说似乎有点过头了还是 Visual Studio(或者我误解了)?

我已经使用了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)包含几个@987654332 @ 带有 QUnit 测试的文件,但 TeamCity 没有显示测试。

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

【问题讨论】:

  • 好吧,当我写完我的问题时,我找到了答案。猜猜如果我无论如何发布并分享我的解决方案作为自我答案可能是最好的,不管它对某些人来说有多明显(AFAIK这个答案还不存在/很容易找到)。 - 也许有人会提出更好的解决方案!?

标签: unit-testing msbuild teamcity qunit chutzpah


【解决方案1】:

如果您已经在使用 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(例如,从您的开发机器中获取它)并使用完整路径引用它或自己将其放置在您的路径中。

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

    chutzpah.console.exe "MyProject/UnitTestsSubDir"
    

    例如:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-21
    • 1970-01-01
    • 2020-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多