Я создаю приложение Symfony 3.4. Затем я начал писать несколько тестов, которые полностью проходят локально:
/**
* Two steps :
* 1) Checks if page goes on 200 status
* 2) Posts sample datas
*/
public function testDistanceAmongSequencesAction()
{
/**
* 1 - Access to the page OK
*/
$this->client->request('GET', '/minitools/distance-among-sequences');
static::assertEquals(200, $this->client->getResponse()->getStatusCode());
}
Но когда я нажимаю свой код и выполняю его с помощью Travis CI, он автоматически терпит неудачу: 3) MinitoolsBundleTest\Controller\MinitoolsControllerTest::testDistanceAmongSequencesAction Не удалось утверждать, что 500 совпадений ожидали 200.
Это мой файл .travis.yml:
language: php
sudo: required
dist: trusty
php:
- '7.1.16'
services:
- mysql
script:
- composer self-update
- composer install --no-interaction --no-suggest
- bin/console server:run &
- vendor/bin/phpunit
Версия PHP такая же, как у меня. Я думаю, что виртуальная машина Travis не может получить доступ к пути y, но почему? Спасибо за помощь !
Спасибо, как я могу это сделать?
Может быть, вам стоит запустить миграции перед тестами?
На данный момент у меня нет миграций, URL-адреса, которые я тестирую, не имеют никакого подключения к базе данных.
Понимаю. Это проблема с TWIG: [2019-07-24 09:28:16] request.CRITICAL: Uncaught PHP Exception Twig\Error\LoaderError: «Невозможно найти шаблон» @Minitools/Minitools/skews.html.twig» Но я не понимаю: он отлично работает на моем сервере, и локально делает тесты ...
Что ж, попробую централизовать шаблоны и не использовать аннотацию @... спасибо за подсказку!






Хорошо, в моем контроллере я вызвал шаблоны TWIG, используя аннотацию @, и Трэвис этого не понимает. Поэтому я изменил каждый вызов и переместил TWIG в app/resources. Спасибо.
Добавьте несколько логов от travis, там должна быть информация, которая неверна