Статьи

Тестирование JavaScript с последними версиями Firefox и Chrome в AppVeyor

Создание веб-приложения без его тестирования в основных потребительских браузерах — это безумие. К счастью, у нас есть несколько кросс-браузерных сервисов тестирования, таких как Sauce Labs , BrowserStack и многие другие. Тем не менее, для быстрой проверки работоспособности последних стабильных версий Google Chrome и Mozilla Firefox ничто не сравнится с фантастическим сервисом, предоставляемым AppVeyor .

В качестве размещенной службы непрерывной интеграции AppVeyor запускает ваше приложение (и его тесты) в Windows, точнее, в Microsoft Windows Server 2012 R2. Это означает, что у нас есть доступ к широко используемым веб-браузерам: Internet Explorer, Firefox и Chrome. Благодаря интеграции с платформой IE 11 всегда доступен. Зачастую Firefox и Chrome отстают на несколько версий. Чтобы решить эту проблему, мы всегда можем установить последнюю стабильную версию этих двух браузеров прямо перед запуском тестов.

Если вы хотите следовать, я подготовил простой проект на  github.com/ariya/karma-appveyor . Клонируйте репозиторий, чтобы получить представление о том, что он делает. Поскольку он спроектирован так, чтобы быть очень простым, он состоит только из одного теста, написанного с использованием библиотеки модульных тестов Mocha и выполненного с использованием программы запуска Karma :

describe("sqrt", function() {
  it("should compute the square root of 4 as 2", function() {
    assert.equal(Math.sqrt(4), 2);
  });
});

Сам тест можно выполнить, запустив npm test. Он запустит Karma для запуска теста в следующих браузерах, доступных в вашей системе: Chrome, Firefox, Safari и IE. Доступные браузеры обнаруживаются с помощью очень красивого плагина Karma под названием karma-detect-browsers . Если вы работаете в OS X, вы получите что-то вроде этого:

appveyor

Чтобы запустить его в AppVeyor, сначала нам нужно создать файл конфигурации, который выглядит следующим образом:

version: "{build}"

environment:
  nodejs_version: "0.12"

install:
  - ps: Install-Product node $env:nodejs_version
  - node --version
  - npm --version
  - npm install

test_script:
  - npm test

Теперь перейдите на appveyor.com , войдите в систему, используя свою учетную запись GitHub, создайте новый проект и выберите свой репозиторий. Явно запрашивайте новую сборку, и через некоторое время AppVeyor готовит сборку следующим образом:

устаревший

Он запускает тесты с IE 11, Firefox 30 и Chrome 41. Последние два браузера довольно устарели. Как мы форсируем обновление?

Шоколад на помощь! Созданный на основе Nuget , Chocolatey упрощает установку многих приложений Windows в режиме без вывода сообщений (поэтому он и называется «apt-get of Windows»). Нам нужно настроить наш appveyor.ymlтаким образом, чтобы Chocolatey установил пакет firefox и googlechrome . Конечно, если вы живете на грани, не стесняйтесь включать в смесь Firefox Beta и Chrome Beta .

install:
  - choco install firefox
  - choco install googlechrome
  - ps: Install-Product node $env:nodejs_version
  - node --version
  - npm --version
  - npm install

test_script:
  - npm test

Запустите сборку в AppVeyor, и на этот раз журнал сборки будет другим :

обновленный

Вот и все: у нас IE 11, Firefox 40 и Chrome 45 запускают наш тест!