Chimp.js с Mocha - сохранить скриншоты неудачных тестов на CircleCI - PullRequest
0 голосов
/ 28 июня 2018

Я использую Chimp.js для запуска тестов E2E на CircleCI на моем промежуточном сервере, на котором запущено приложение Meteor. Иногда тесты не выполняются, и было бы здорово сделать снимок экрана интерфейса пользователя для отладки этих неудачных тестов.

Можно ли сохранять скриншоты с помощью Chimp и Mocha? Шимпанзе использует webdriver.io, который имеет возможность сохранять скриншоты, вызывая browser.saveScreenshot('./snapshot.png'); http://webdriver.io/api/utility/saveScreenshot.html#Example

Но как сохранить скриншоты только при неудачном тестировании? А как посмотреть эти скриншоты на CircleCI?

1 Ответ

0 голосов
/ 28 июня 2018

Чтобы сохранить скриншот точно после неудачного теста Mocha, вы можете использовать код, подобный этому. Снимок экрана сохраняется в функции afterEach(), если проверка в блоке it не удалась.

describe('some feature test', function () {

    it('first it block', function () {
        signInPage.open();
        ...
    });

    it('second it block', function () {
        ...
    });

    afterEach(function () {
        if (this.currentTest.state === 'failed') {
            browser.saveScreenshot('/tmp/artifacts/screenShot.png');
        }
    });
});

Не это должно нормально работать на локальном компьютере.


Чтобы сохранить и просмотреть скриншот на circleCI, вы можете использовать артефакты: https://circleci.com/docs/2.0/artifacts/#uploading-artifacts

Поместите код, подобный этому, в ваш config.yml

version: 2
jobs:
  my_fancy_test:

    ...

    steps:

      ...

      - run: |
          mkdir /tmp/artifacts
          cd app && npm run my-fancy-test

      - store_artifacts:
          path: /tmp/artifacts

Если тест не пройден в CircleCI, screenShot.png должен быть скопирован и отображен на вкладке артефактов в CircleCI:

enter image description here

...