Как организовать юнит-тест для файлов javascript в проекте django, чтобы их можно было запускать из CLI и интегрировать в скрипт Gitlab-CI? - PullRequest
1 голос
/ 17 апреля 2020

Я сделал свой проект в одиночку и в качестве хобби и ищу профессиональную методологию, чтобы это сделать:

Я получил свой проект django стандартным способом:

Myproject
+-- App1
│   +-- migrations
│   +-- static
│   │   \-- js  
│   +-- apps.py
│   +-- __init__.py
│   +-- migrations
│   +-- static
│   │   \-- js
│   │       +-- App1.js   # <-- javascipt for my first app
│   +-- templates
│   │   +-- App1.html
│   +-- tests                     # <-- contains python tests for my first app
│   │   \-- test_views_App1.py
│   +-- tests.py
│   +-- urls.py
│   \-- views.py
+-- App2
 ...
│   │   \-- js
│   │       +-- App2.js    # <-- javascipt for my second app
 ...
│   +-- tests                  # <-- contains python tests for my second app
│   │   \-- test_views_App2.py
│   +-- urls.py
│   \-- views.py
+-- App3
...
+-- pytest.ini
+-- manage.py

Для каждого моего приложения у меня часто есть сценарий Javasript для моего интерфейса. Я использовал JQuery для их создания настолько естественно, что думаю использовать Qunit для моего юнит-теста. Документация django довольно краткая по этому вопросу. Поэтому мне интересно, каков наилучший способ организации моих JS тестов: должен ли я поместить тестовую папку в мои папки js с тестом соответствующего приложения? Должен ли я сделать приложение, предназначенное для теста Javascript?

Более того, я обнаружил Непрерывную Интеграцию Gitlab, и я хотел бы запустить свои javascript тесты так же, как я делаю с тестом python, использующим pytest. Итак, как я могу собрать все мои JS тесты и запустить их все одновременно из командной строки? Я видел, что можно запустить Qunit в CLI с помощью Node.js, поэтому я попытался, но у меня есть проблемы с импортом проверенного файла js в мой тестовый файл без использования файла 'test. html'. Возможно ли это?

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...