【问题标题】:How to get a Chutzpah Test Adapter to run my QUnit tests on an Azure DevOps pipeline build?如何让 Chutzpah 测试适配器在 Azure DevOps 管道构建上运行我的 QUnit 测试?
【发布时间】:2019-05-01 02:45:20
【问题描述】:

它只适用于我的机器 - 在使用 Azure DevOps 之前,我只是安装了这个 Chutzpah VSIX 'Test Adapter' add-on 以运行我的 QUnit 测试。我的 test.js 使用 Chutzpah 的参考语法。所以 Chutzpah 将在 IDE 的 Test Explorer 中显示测试,我可以像其他任何人一样运行它们。

Azure Pipeline Docs - says right here 他们的 VSTest@2 任务运行器支持运行 Chutzpah 单元测试:

在构建或发布管道中使用此任务以使用 Visual Studio 测试运行程序运行单元和功能测试(Selenium、Appium、编码的 UI 测试等)。除了基于 MSTest 的测试之外,还可以执行具有 Visual Studio 测试适配器的测试框架,例如 xUnit、NUnit、Chutzpah。

但没有发现我的 QUnit / Chutzpah 测试 - 如果我将此解决方案堆栈上传到 Azure DevOps 存储库,并为 ASP.NET 使用默认 YAML.. 它会发现几个单元测试和成功运行它们但我的任何 javascript/QUnit 测试都没有

我猜我的 Chutzpah VSIX 附加组件不存在于 Azure DevOps 构建代理机器上,我需要做一些事情让它工作 - 但是,什么?我目前没有使用Chutzpah nuget pkg - 我应该吗?


更新...

根据Art of Simplicity blog post,我确实需要安装 Chutzpah NuGet 包。

此 NuGet 包包含运行 JavaScript 测试所需的所有 DLL 和工具。通过使用这种方法,您无需在构建服务器上安装 Chutzpah 测试适配器或指定测试适配器的位置。 TFS Build 测试工具会自动检测所需的 DLL 并为您加载测试适配器。

我是 Azure DevOps 世界的新手(以及它的前身),并且没有调整我的 Google-fu 以包含诸如“TFS”之类的术语 - 所以我可能需要根据它开始搜索。


更新... 根据上面的博客文章,我现在在我的 Web 项目的根目录中添加了一个 chutzpah.config 文件(它不在我的存储库的根目录中……我的存储库中有多个嵌套在各个级别的解决方案)。 在管道服务器上构建它仍然没有运气

【问题讨论】:

    标签: azure-devops azure-pipelines chutzpah


    【解决方案1】:

    对我来说,关键是我必须将 Chutzpah NuGet 包添加到我的 Web 项目中,然后告诉构建代理/测试运行程序在哪里可以找到 Chutzpah 的“东西”(请参阅​​下面 yaml 中的pathtoCustomTestAdapters 开关) more here

    这是对我有用的 .yml 文件:

    - task: VSTest@2
      inputs:
        platform: '$(buildPlatform)'
        configuration: '$(buildConfiguration)'
        testAssemblyVer2: '$(Build.SourcesDirectory)/MyApp/trunk/MyWebAppProject/Scripts/tests/test**.js'
        pathtoCustomTestAdapters: '$(Build.SourcesDirectory)/MyApp/trunk/packages/Chutzpah.4.4.3/tools/'
    

    尽管在某些地方被告知要添加 .runsettings 文件,但这似乎不适用于我的 Azure DevOps 构建代理.. 它实际上混淆了它!

    FWIW - 这是 chutzpah.json 我放在我的 web 项目的根目录(不是我的 repo 的根目录)

    {
      "Framework": "qunit",
      "FrameworkVersion": "1",
      "TestHarnessLocationMode": "TestFileAdjacent", 
      "References": [
        {
          "Path": "Scripts/qunit.js",
          "IsTestFrameworkFile": true
        },
        {
          "Path": "Content/qunit.css",
          "IsTestFrameworkFile": true
        }
      ],
      "Tests": [
        {
          "Path": "Scripts/tests/",
          "ExpandReferenceComments": true,
          "Excludes": [ "fake_razor.js", "fake_razor_search.js","MyCorp.Spa.Routing.Callbacks.js" ]
        }
      ]
    }
    

    我不知道添加这个 .json 是否对我的成功至关重要。

    【讨论】:

      猜你喜欢
      • 2013-11-27
      • 2020-01-29
      • 2019-08-14
      • 1970-01-01
      • 2020-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多