Как получить тестовый адаптер Chutzpah для выполнения моих тестов QUnit на сборке конвейера Azure DevOps? - PullRequest
0 голосов
/ 29 ноября 2018

Это просто работает на моем компьютере - До использования DevOps Azure я просто установил это дополнение к тестовому адаптеру Chutzpah VSIX , чтобы запустить свои тесты QUnit.Мой test.js использует эталонный синтаксис Chutzpah .. поэтому Chutzpah отобразит тест в среде IDE Test Explorer, и я смогу запустить их, как и любой другой.

Документы Azure Pipeline - прямо здесь говорит, что их VSTest@2 исполнитель задач поддерживает запуск модульных тестов Chutzpah:

Используйте эту задачу в конвейере сборки или выпуска для запуска модульных и функциональных тестов (Selenium, Appium, Coded UI)и многое другое) с помощью Visual Studio Test Runner.Кроме тестов на основе MSTest, также могут быть выполнены тестовые среды с тестовым адаптером Visual Studio, такие как xUnit, NUnit, Chutzpah.

Но мои тесты QUnit / Chutzpah не подходятt обнаружен - если я загружаю этот стек решений в репозиторий DevOps Azure и использую YAML по умолчанию для ASP.NET ... он обнаруживает несколько модульных тестов и успешно их запускает , но ни один из моих тестов javascript / QUnit

Я предполагаю , что мои надстройки Chutzpah VSIX отсутствуют на машине агента сборки DevOps Azure, и мне нужно что-то сделать, чтобы это работало - но что?Я не использую Chutzpah nuget pkg - я должен?


Обновление ...

Согласно этому сообщению блога Art of Simplicity Мне нужно установить пакет Chutzpah NuGet.

Этот пакет NuGet содержит все необходимые библиотеки DLL и инструменты для запуска ваших тестов JavaScript.Используя этот подход, вам не нужно устанавливать тестовый адаптер Chutzpah на свой сервер сборки или указывать местоположение вашего тестового адаптера.Инструменты тестирования TFS Build автоматически обнаружат необходимые библиотеки DLL и загрузят тестовый адаптер для вас.

Я новичок в мире DevOps Azure (и его предшественников) и не настроил свой Google-fu, чтобы включить такие термины, как 'TFS' - поэтому, возможно, мне нужно начать поиск на основе этого.


Обновление ... Согласно сообщению в блоге выше, я сейчасдобавил файл chutzpah.config в корень моего веб-проекта (он не находится в корне моего репо. В моем репо есть несколько решений, вложенных на разных уровнях). Все еще не повезло, что его удалось собрать на конвейерном сервере

1 Ответ

0 голосов
/ 29 ноября 2018

Ключевым моментом для меня было то, что мне пришлось добавить пакет Chutzpah NuGet в мой веб-проект, а затем сообщить агенту сборки / исполнителю тестов, где найти этот «материал» Chutzpah (см. Переключатель pathtoCustomTestAdapters в yaml ниже) больше здесь

Вот мой файл .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, который я поместил в корень моего веб-проекта (который не является корнем моего репозитория))

{
  "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 критично для моего успеха или нет.

...