Как управлять E2E-тестированием веб-приложения AngularJS перед минификацией?

Мы создаем WebApp, используя AngularJS Seed в качестве шаблона проекта. Существует множество контроллеров, директив, сервисов, каждый в своем js-файле.

  • Содержимое папки приложения будет уменьшено с помощью Closure.
  • Все зависимости lib будут заменены минифицированными версиями через CDN.
  • Unit/e2e-тестирование с использованием Testacular/Jasmine.

Я не уверен, что такое типичный процесс dev-compile-test, поскольку я новичок в мире AngularJS и Javascript WebApps в целом :-) Мой вопрос заключается в том, как управлять файлами js приложения во время разработки, чтобы тесты E2E можно было отлаживать. Это мое текущее мышление;

  1. Testacular отслеживает исходные файлы для непрерывного модульного тестирования.
  2. Страница index.html всегда ссылается на конкатенированный, но не минифицированный файл js.
  3. Компиляция должна выполняться до того, как приложение можно будет запустить или протестировать e2e.
  4. Сервер сборки будет минимизирован как часть его деятельности.

Это разумный подход? Это помогает уточнить, что я использую WebStorm, nodejs и т. д.


person Robert    schedule 22.12.2012    source источник
comment
это в значительной степени подход, который мы используем, только сборки выполняются на обработчиках коммитов.   -  person SonOfNun    schedule 23.12.2012
comment
Я не вижу в этом ничего плохого. Вы используете хрюканье? Может помочь справиться с этим немного.   -  person Roy Truelove    schedule 11.01.2013
comment
Спасибо, Рой, надлежащий инструмент сборки был недостающим компонентом. В моем представлении о javascript произошла смена парадигмы. В прошлом скриптовая часть javascript заставляла меня недооценивать этот язык как серьезного соперника в реализации больших систем. Уже нет. :-)   -  person Robert    schedule 28.03.2013


Ответы (2)


Создайте отдельные конфигурации для тестирования минимизированных и не минимизированных источников.

Местный:

$ testacular start  
# make some changes
$ minify.sh
$ testacular start testacular-minified.conf.js # you could skip this if you trust your minification

Сборка сервера при изменении:

$ testacular start --no-auto-watch # you could skip this if you trust your minification
$ minify.sh
$ testacular start testacular-minified.conf.js

Если у вас есть как тесты Jasmine, так и тесты e2e, вам нужно иметь четыре файла конфигурации.

person iwein    schedule 19.01.2013

Спасибо всем, кто предлагал предложения, все они помогли мне найти решение. Блок-схема (более или менее) описывает допустимый процесс сборки. Ключевым моментом здесь является то, что вам нужен инструмент для сборки. Использование инструмента сборки — в данном случае GruntJS — должно быть реализовано для управления последовательностью ряда задач. Последовательность будет варьироваться в зависимости от цели, а инструменты сборки позволяют повторно использовать задачи в различных сценариях.

В случае приложений AngularJS. Обратитесь к angular-app на github;

https://github.com/angular-app/angular-app

Вы найдете эталонное приложение для реализации приложения Angular. Он содержит процесс сборки, реализованный в Grunt для непрерывного тестирования, сборки и выпуска. В более общем плане это справочное приложение стало отличным руководством для реализации легко управляемого и понятного проекта javascript.

person Robert    schedule 27.03.2013