Чи слід використовувати Protractor або Karma для мого тестування? [зачинено]


124

Чи слід використовувати Protractor або Karma для мого тестування?

У кутовому насінні використовується Protractor / Selenium WebDriver для E2E, але підручник з кутовим телефоном використовує карму.

Я читав, що я повинен використовувати Karma для одиничних тестів і Protractor для E2E, що здається нормальним, але я подумав, що попрошу тут отримати думку інших розробників.


1
Краще підходить для програмних рекомендацій . Хоча якщо ви опублікуєте це питання там, вам доведеться детальніше розписати свої вимоги. Схожі мета
професор Алман

5
Karma і Protractor використовуються та рекомендуються командою Angular, але, враховуючи стан документації (тобто: тут є багато тонн, і важко дізнатися, що зараз актуально), важко знати, що використовувати та з якою метою. Це гарне запитання, і відповідь glpretre була саме те, що я шукав.
Метт

5
Я не вважаю, що питання було занадто широким (транспортир проти карми). Тут ми говоримо про рамки, а не лише про якесь програмне забезпечення, тому питання в його правильному місці.
CCC

Дивіться мою відповідь тут для більш детального обговорення випадків використання, переваг та обмежень Karma та транспортира: stackoverflow.com/a/29619467/1614973
Дмитро Зайцев

Я розумію, що Protractor не дозволяє протестувати лише частину вашої програми без наявності решти (наприклад, глузування): тестовий код навіть не працює в тому ж інтерпретаторі JS, що і додаток. Немає моніторингу файлової системи для модифікації вихідного коду та автоматичного повторного запуску порушених тестів. Карма забезпечує це. Він надсилає тестовому коду + код програми в <script> s до браузера, щоб вони працювали в одному інтерпретаторі, знущаючись над можливим, але не розраховані на тестування з використанням кінцевих подій, як ніби справжній користувач діяв.
robert4

Відповіді:


179

Команда AngularJS рекомендує використовувати Protractor, оскільки він буде замінювати кутовий бігун сценарію:

Angular Scenario Runner знаходиться в режимі технічного обслуговування - Якщо ви починаєте новий проект Angular, подумайте про використання Protractor .

цитується з документації AngularJs .

Навчальний посібник angular-phonecat був розроблений дуже давно (в основному в 2011 році) і ще не оновлювався для використання деяких нових функцій Angular, таких як Protractor.

EDIT

У Документах транспортера - FAQ :

Чому і Карма, і Трантрактор? Коли я використовую який?

Karma - чудовий інструмент для тестування одиниць, а Protractor призначений для тестування з метою завершення або інтеграції. Це означає, що невеликі тести на логіку ваших окремих контролерів, директив та служб слід проводити за допомогою Karma. Великі тести, в яких у вас є запущений екземпляр всієї вашої програми, слід проводити за допомогою Protractor. Protractor призначений для запуску тестів з точки зору користувача - якщо ваш тест може бути записаний як інструкція для людини, що взаємодіє з вашою програмою, це повинен бути тест, написаний на Protractor.

Ось чудовий пост у блозі з додатковою інформацією.


11
Поширені запитання щодо Karma - karma-runner.github.io/0.10/intro/faq.html - Чи можу я використовувати Кару для тестування? Карма була розроблена головним чином для тестування низького рівня (одиниці). Якщо це додаток AngularJS, ви можете використовувати Karma з плагіном карма-ng-сценарію, проте ми рекомендуємо Protractor для тестування високого рівня.
mrwaim

Якщо я хочу тестування одиниць, а також тестування e2e, то мені доведеться налаштувати карма середовище для тестування одиниць, а транспортир для тестування інтерфейсу або тестування e2e?
Суніл Гарг

2
@SunilGarg Так, вам, можливо, наша структура додатків для початківців може допомогти вам: github.com/glepretre/angular-requirejs-ready (ігноруйте специфіку Requirements JS, якщо ви не використовуєте її)
glepretre
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.