Проверяет ли Travis CI более одного файла .travis.yml? - PullRequest
0 голосов
/ 10 мая 2018

Я только начинаю с непрерывной интеграции, используя Travis CI .

У меня есть этот файл в ДВУ моего репо:

sudo: false
language: php
php:
  - '7.1'

Вот как Travis CI видит мою конфигурацию:

{
  "os": "linux",
  "php": "7.1",
  "dist": "trusty",
  "sudo": false,
  "group": "stable",
  "language": "php",
}

Почему сборка завершается с ошибкой с ошибкой phpunit? Может ли это быть из-за другого .travis.yml файла в репо?

Network availability confirmed.
...edited for brevity...
git.checkout
0.34s$ git clone  ...edited for brevity...
$ php --version
PHP 7.1.11 (cli) (built: Oct 26 2017 16:25:55) ( ZTS )
Copyright (c) 1997-2017 The PHP Group
...edited for brevity...
$ composer --version
Composer version 1.6.5 2018-05-04 11:44:59
0.15s$ phpunit
PHPUnit 6.4.3 by Sebastian Bergmann and contributors.
Usage: phpunit [options] UnitTest [UnitTest.php]
       phpunit [options] <directory>
...edited for brevity...

The command "phpunit" exited with 2.
Done. Your build exited with 1.

Я не уверен, где искать дальше.

Ответы [ 2 ]

0 голосов
/ 11 мая 2018

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

Ваш phpunit.xml должен содержать что-то вроде этого:

<?xml version="1.0" encoding="UTF-8"?>
<phpunit colors="true">
    <testsuites>
        <testsuite name="Your application name">
            <directory>./tests/</directory>
        </testsuite>
    </testsuites>
</phpunit>

Замените ./tests/ относительным путем к папке, содержащей ваши тестовые файлы.

Чтобы проверить свою конфигурацию, запустите phpunit, находясь в базовом каталоге вашего репо. Вы должны увидеть тот же результат, что и Travis CI.

0 голосов
/ 11 мая 2018

Согласно документам , "Travis CI использует файл .travis.yml в корне вашего хранилища, чтобы узнать о вашем проекте и о том, как вы хотите, чтобы ваши сборки выполнялись."

Он хочет, чтобы что-то было запущено, и по умолчанию запускает phpunit, который завершится неудачей без запуска хотя бы одного теста.

Таким образом, для сборки-заполнителя можно создать скрипт bash в том же каталоге, что и файл .travis.yml, сделать его исполняемым и указать на него следующим образом:

sudo: false
language: php
php:
  - '7.1'

before_install:
  - chmod +x build.sh

script: ./build.sh

Это скрипт "build":

#!/usr/bin/env bash

echo This is a placeholder.
...