Задать вопрос

Как правильно проводить unit тесты в 1с bitrix, используя codeception?

Как подружить codeception и 1c bitrix? В методе __before подключаю файлы
require_once $_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/prolog_before.php';


Данный файл подключается нормально, но при запуске теста возникает ошибка: Test code or tested code did not (only) close its own output buffers

OK, but incomplete, skipped, or risky tests!
Tests: 1, Assertions: 2, Risky: 1.
  • Вопрос задан
  • 788 просмотров
Подписаться 2 Простой Комментировать
Решения вопроса 1
@roman94 Автор вопроса
Проблема решена. Если вдруг у кого-то возникнет подобное
$level = ob_get_level();
        require_once $_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/prolog_before.php';
        while (ob_get_level() > $level) {
            ob_end_clean();
        }


Так как Phpunit устанавливает свой буфер, если мы очищаем и его - начинает ругаться
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Vasek18
Встал на этой же проблеме, но никакие ошибки не выдаются, просто дело не доходит до тестов
5c6c1eea22d75722742673.jpeg
После "Running with seeds:" должны идти сообщения о прохождение тестов, но, как видно на скрине, до этого дело не доходит и выполнение команды просто останавливается

Подключаю пролог отдельным файлом:
<?php

$_SERVER['DOCUMENT_ROOT'] = realpath(__DIR__.'/..');
$DOCUMENT_ROOT = $_SERVER["DOCUMENT_ROOT"];

define("NO_KEEP_STATISTIC", true);
define("NOT_CHECK_PERMISSIONS", true);
define('BX_NO_ACCELERATOR_RESET', true);
define("CHK_EVENT", true);
define('SITE_ID', 's1');

$level = ob_get_level();
require_once $_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/prolog_before.php';
while (ob_get_level() > $level) {
    ob_end_clean();
}


Если убрать работу с буфером, ничего не меняется. От списка констант тоже ничего не меняется
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы