2

Мы используем PHPUnit, и мы запускаем кучу интеграционных тестов, которые тестируют наши сторонние API, и мы хотим, чтобы они отображали предупреждение, когда они терпят неудачу в Codeship, но не блокируйте сборку, потому что у нас нет никакого контроля над ними. Возможно ли это? То, что мы делаем, curently отметить все потерпело неудачу интеграционных тестов, как неполный черезCodeShip Как запускать тесты, которые показывают предупреждения вместо сбоев сборки

trait IntegrationTestTrait 
{ 
    protected function onNotSuccessfulTest(Exception $e) 
    { 
     $this->markTestIncomplete("This test failed for the following  reason " . $e->getMessage()); 
    } 
} 

Но это на самом деле не работает, потому что на самом деле никто не заботится о незавершенных тестов. Кто-нибудь знает, есть ли что-либо более сильное, чем неполное, но не может ли вы не построить всю сборку, которую мы можем использовать?

+0

Кодировка будет отмечать шаг как сбой, если код выхода команды, которую вы запускаете, не равен нулю. Итак, до тех пор, пока программа выйдет с нулевым кодом выхода, вы можете получить любой желаемый результат. Я бы не рекомендовал это для запуска ваших тестов, но вы также можете сделать успешный шаг, используя 'test_command || true'. Вы можете использовать это на отдельном этапе, который, например, проверяет только внешние API. – mlocher

ответ

2

Кто-нибудь знает, есть ли что-либо более сильное, чем неполное, но не подведет вся сборка, которую мы можем использовать?

Вы можете предупредить предупреждение с красным фоном, чтобы привлечь ваше внимание, если вы смотрите тестирование PHPUnit, но хотите, чтобы он продолжал идти.

В тесте на единицу:

echo "\e[41;97m" . "Warning Text" . "\e[0m\n"; 

Эти командные строки управляющие последовательности, которые зажигаются цветов. 41; 97 - фон красного цвета, а 0m очищает его. enter image description here