Как настроить код с удаленным кодом?

  • У меня есть два репо на моей машине
    • API
    • Репозиторий Codeception, который проверяет API

В API repo я добавил codeception + c3

"require-dev": {
    "codeception/codeception": "2.*",
    "codeception/c3": "2.*",

Я также включил c3.php внутри index.php, но при попытке проверить его с помощью -coverage у меня есть эта ошибка

[PHPUnit_Framework_Exception] file_get_contents (http://local.api.codeception.com/c3/report/clear): fai привело к открытому потоку: HTTP-запрос не удался! Ошибка внутреннего сервера HTTP/1.1 500

Есть ли какой-либо онлайн-пример удаленного управления кодами с помощью Codeception?

Ответы

Ответ 1

Хорошо, это был кошмар конфигурации, но я исправил его

Здесь приведен пример

Ответ 2

Здесь моя конфигурация для удаленного кодообразования с Codeception (Project on GitHub).


Шаги для запуска коллекции удаленных коллекций codecoverage

1. Убедитесь, что xdebug установлен и включен.

2. Настроить код.

Файл codeception.yml (GitHub):

coverage:
  enabled: true
  c3_url: 'http://%SERVICE_HOST%/index-test.php/'
  include:
  - web/*
  - config/*
  - src/*

3. Включите покрытие для необходимых вам костюмов.

Файл acceptance.suite.yml (GitHub):

coverage:
  remote: true

В моем примере он разрешен только для приемочных испытаний.

4. Включите c3.php файл в загрузочный файл приложения.

Загрузочный файл приложения index-test.php (GitHub):

// Start the remote code coverage collection.
require_once __DIR__.'/../c3.php';

// autoloader, application running and etc
// ...

5. Запуск покрытия.

$ vendor/bin/codecept run --coverage --coverage-html

По умолчанию вы можете найти свои отчеты в каталоге tests/_output.


Возможные проблемы

1. Выходной каталог не доступен для записи (tests/_output).

$ chmod 777 tests/_output

2. Удаленное копирование не печатается на консоли.

Не следует печатать. Из документации:

coverage:
  remote: true

В этом случае результаты удаленного кода покрытия не будут объединены с локальными, если этот параметр включен. Слияние возможно только в том случае, если удаленные и локальные файлы имеют один и тот же путь. Но в случае запуска тестов на удаленном сервере мы не уверены в этом.

3. Некоторая другая ошибка.

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

curl -o codecoverage.tar "http://localhost:8080/index-test.php/c3/report/html"

В конце

Иногда это не тривиальная задача. Поэтому я надеюсь, что это поможет!