2017-01-26 3 views
2

В моем файле Protractor conf.js я хотел бы повторно использовать одни и те же файлы спецификаций несколько раз; однако, похоже, это невозможно.Транспортир - как повторно использовать один и тот же файл спецификации для разных тестов

Некоторые фона:

Мы читаем тестовые случаи из файла JSON, запуск отчетов, то результаты тестирования сетки и различных элементов DOM.

Все отчеты имеют одинаковый формат. Основные отличия заключаются в заголовках отчетов, столбцах данных, фактических данных и т. Д.

Так что в моем файле conf.js я хотел бы повторно использовать одни и те же файлы спецификаций несколько раз, но я понимаю, что я не может этого сделать.

Например, моя спецификация массив:

specs: [ 
     'spec/report1-spec.js', 
     'spec/report-grid-details-spec.js', 
     'spec/report2-spec.js', 
     'spec/report-grid-details-spec.js', 
     'spec/report3-spec.js', 
     'spec/report-grid-details-spec.js', 
] 

Я прочитал этот пост (http://ramt.in/how-to-run-identical-jasmine-specs-multiple-times-with-protractor/), где вы можете перемещать ваши спецификации файлы в node module, но 1) я не хочу, чтобы переместить все данные файлов там, и 2) все равно не работает, когда я перемещаю один файл spec в файл экспорта модуля.

Если я не могу этого сделать, тогда я просто переведу код report-grid-details-spec.js в обычный файл page object и позвоню ему, когда это необходимо.

Просто интересно, нашел ли кто-нибудь решение этой необходимости повторно использовать файлы спецификаций несколько раз в одной конфигурации conf.js.

Спасибо, Боб

ответ

2

Если я не могу это сделать, то я просто пошевелить отчет-грид-детали-spec.js код в файл объекта общую страницу и назовите его всякий раз, когда это необходимо.

Это, вероятно, самый простой способ приблизиться к проблеме. Хотя мне нравится идея размещения спецификаций в модулях - это плюс для повторного использования в целом.

Дело в том, что jasmine не позволяет выполнить один и тот же тест за один прогон. И, насколько я понимаю, нет простого способа изменить поведение.

Одним из возможных способов решения является полностью рестарт транспортира и, следовательно, воссоздать среду тестирования жасмина, так что следующий report-grid-details-spec.js будет работать в новой среде жасмина - это то, что protractor-flake project использует, чтобы повторить неисправный тесты (это в основном перезапускает protractor через командную строку, передавая неудачные спецификации в виде списка, разделенного запятыми, аргументу specs, source).

+1

Да .. Жасмин по умолчанию не поддерживает это. Я проверил в 'TaskScheduler.js' .. +1 – AdityaReddy

+1

@alecxe - спасибо. Я думал о создании наборов с использованием свойства 'suites', но затем он каждый раз переписывал бы мой тестовый отчет e2e. –

Смежные вопросы