Тесты на принятие не проходят в GitHub Actions

Привет, сообщество Discourse :wave:

Я настраиваю новый плагин на основе шаблона, который вы предоставили, и он уже очень помог мне.

Сейчас я пишу тесты как для фронтенда, так и для бэкенда. В среде разработки Discourse всё работает как положено, включая тесты принятия (acceptance tests), которые проходят безупречно.

Мой файл рабочего процесса (workflow) выглядит так просто:

name: Discourse Projects Plugin - CI

on:
  push:
    branches: [ main ]

jobs:
  discourse:
    uses: discourse/.github/.github/workflows/discourse-plugin.yml@v1

Однако при попытке запустить этот рабочий процесс в GitHub Actions я получаю странную ошибку на шаге frontend_tests / Plugin QUnit:

Built project successfully. Stored in "/tmp/tests-dist-20231022-6082-zjfckn.1g5q".
not ok 1 Chrome 119.0 - [180 ms] - global failure
    ---
        stack: >
            Error: No tests were run.
                at done (http://localhost:7357/assets/chunk.74084cb2759545d0c671.js:108653:17)
                at advanceTestQueue (http://localhost:7357/assets/chunk.74084cb2759545d0c671.js:108565:7)
                at Object.advance (http://localhost:7357/assets/chunk.74084cb2759545d0c671.js:108520:7)
                at unblockAndAdvanceQueue (http://localhost:7357/assets/chunk.74084cb2759545d0c671.js:110490:21)
        message: >
            No tests were run.
        negative: >
            false
        browser log: |
            {"type":"log","text":"ℹ️ Ember v3.28.12"}
    ...
Out of requested 1 browser(s), 1 browser(s) was launched & completed.
All browsers to exited.
Used JS Heap Size: 0.073GB

Помимо этого, я не получаю никаких подробностей, даже при повторном запуске рабочего процесса с включённым логированием отладки. Все остальные шаги рабочего процесса выполняются корректно (линтеры, rspec и т.д.).

Поэтому мои вопросы просты:

  • Достаточно ли бесплатного раннера GitHub для выполнения шага с тестами принятия?
  • Есть ли у кого-нибудь идеи, как я могу устранить эту проблему?

Я уверен, что где-то делаю что-то не так, но не знаю, с чего начать поиск.

Спасибо за помощь и за всю работу, проделанную над Discourse!

Привет, Пьер! Мы согласны, что опыт разработчика можно улучшить в некоторых аспектах, и я пытаюсь понять, как вы столкнулись с этой проблемой и что мы можем сделать, чтобы помочь вам и будущим разработчикам получить более приятный опыт.

Как вы запускаете тесты на принятие локально?

Вы определили какие-либо тесты в директории test/javascripts?

Привет, @nbianca, спасибо за ваш ответ!

Я запускаю тесты приемки локально через страницу Qunit по адресу http://localhost:4200/tests:

Как видите, в test/javascripts уже есть несколько тестов.

На самом деле ваш вопрос заставил меня попытаться понять, почему не обнаруживалось ни одного теста. Я проверил предоставленный вами рабочий процесс и увидел, что Qunit выполняется с параметром “PLUGIN_NAME”, который заполняется именем репозитория.

В моём случае имя репозитория отличается от имени плагина. В логах задания даже есть предупреждение об этом. Я попробую переименовать репозиторий соответствующим образом и держу вас в курсе :slight_smile:

Могу подтвердить, что использование одного и того же имени для репозитория и плагина решило проблему.

Спасибо @nbianca за помощь!