Я написал несколько автоматических тестов с использованием Laravel Dusk, и когда я их запускаю, я получаю некоторые ошибки, однако я не могу просмотреть весь вывод.Сначала я попытался перенаправить вывод на less
, но по какой-то причине less
не работает должным образом.Затем я попытался сделать:
php artisan dusk --log-junit /path/to/log/file.log
, однако файл журнала по какой-то причине остается пустым.teamcity
версия журнала работает, но там ошибки не описаны.
Кроме того, когда я запускаю только базовый тест, поставляемый с Dusk, он регистрируется правильно.
Поиск в Google ничего не показывает.
Есть идеи?
РЕДАКТИРОВАТЬ 1:
Я сузил проблему до этого теста:
<?php
namespace Tests\Browser;
use App\Logic\Dates\Transform;
use Tests\DuskTestCase;
class DatesTransforms extends DuskTestCase
{
/**
* A Dusk test example.
*
* @return void
*/
public function testMonthEnd()
{
$this->assertEquals('2018-01-31 23:59:59', Transform::monthEnd('2018-01'));
$this->assertEquals('2018-02-28 23:59:59', Transform::monthEnd('2018-02'));
$this->assertEquals('2018-03-31 23:59:59', Transform::monthEnd('2018-03'));
$this->assertEquals('2018-04-30 23:59:59', Transform::monthEnd('2018-04'));
$this->assertEquals('2018-05-31 23:59:59', Transform::monthEnd('2018-05'));
$this->assertEquals('2018-06-30 23:59:59', Transform::monthEnd('2018-06'));
$this->assertEquals('2018-07-31 23:59:59', Transform::monthEnd('2018-07'));
$this->assertEquals('2018-08-31 23:59:59', Transform::monthEnd('2018-08'));
$this->assertEquals('2018-09-30 23:59:59', Transform::monthEnd('2018-09'));
$this->assertEquals('2018-10-31 23:59:59', Transform::monthEnd('2018-10'));
$this->assertEquals('2018-11-30 23:59:59', Transform::monthEnd('2018-11'));
$this->assertEquals('2018-12-31 23:59:59', Transform::monthEnd('2018-12'));
$this->assertEquals('2016-02-29 23:59:59', Transform::monthEnd('2016-02'));
}
public function testMonthStart()
{
$this->assertEquals('2018-01-01 00:00:00', Transform::monthStart('2018-01'));
$this->assertEquals('2018-02-01 00:00:00', Transform::monthStart('2018-02'));
$this->assertEquals('2018-03-01 00:00:00', Transform::monthStart('2018-03'));
$this->assertEquals('2018-04-01 00:00:00', Transform::monthStart('2018-04'));
$this->assertEquals('2018-05-01 00:00:00', Transform::monthStart('2018-05'));
}
}
при запуске полного теста я получаю эту ошибку:
lluminate\\Cont...', Array)
#3 /var/www/domovakniga.local/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(759): Illuminate\Container\Container->make('Illuminate\\Cont...', Array)
#4 /var/www/domovakniga.local/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleEx in /var/www/domovakniga.local/vendor/laravel/framework/src/Illuminate/Container/Container.php on line 945
PHP Stack trace:
PHP 1. {main}() /var/www/domovakniga.local/vendor/phpunit/phpunit/phpunit:0
PHP 2. PHPUnit\TextUI\Command::main() /var/www/domovakniga.local/vendor/phpunit/phpunit/phpunit:61
PHP 3. PHPUnit\TextUI\Command->run() /var/www/domovakniga.local/vendor/phpunit/phpunit/src/TextUI/Command.php:162
PHP 4. PHPUnit\TextUI\TestRunner->doRun() /var/www/domovakniga.local/vendor/phpunit/phpunit/src/TextUI/Command.php:206
PHP 5. PHPUnit\Framework\TestSuite->run() /var/www/domovakniga.local/vendor/phpunit/phpunit/src/TextUI/TestRunner.php:652
PHP 6. Tests\Browser\DatesTransforms->run() /var/www/domovakniga.local/vendor/phpunit/phpunit/src/Framework/TestSuite.php:746
PHP 7. PHPUnit\Framework\TestResult->run() /var/www/domovakniga.local/vendor/phpunit/phpunit/src/Framework/TestCase.php:796
PHP 8. Tests\Browser\DatesTransforms->runBare() /var/www/domovakniga.local/vendor/phpunit/phpunit/src/Framework/TestResult.php:693
PHP 9. Tests\Browser\DatesTransforms->setUp() /var/www/domovakniga.local/vendor/phpunit/phpunit/src/Framework/TestCase.php:838
PHP 10. Tests\Browser\DatesTransforms->setUp() /var/www/domovakniga.local/vendor/laravel/dusk/src/TestCase.php:23
PHP 11. Tests\Browser\DatesTransforms->refreshApplication() /var/www/domovakniga.local/vendor/laravel/framework/src/Illuminate/Foundation/Testing/TestCase.php:68
PHP 12. Tests\Browser\DatesTransforms->createApplication() /var/www/domovakniga.local/vendor/laravel/framework/src/Illuminate/Foundation/Testing/TestCase.php:91
PHP 13. App\Console\Kernel->bootstrap() /var/www/domovakniga.local/tests/CreatesApplication.php:19
PHP 14. Illuminate\Foundation\Application->bootstrapWith() /var/www/domovakniga.local/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php:297
PHP 15. Illuminate\Foundation\Bootstrap\BootProviders->bootstrap() /var/www/domovakniga.local/vendor/laravel/framework/src/Illuminate/Foundation/Application.php:211
PHP 16. Illuminate\Foundation\Application->boot() /var/www/domovakniga.local/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/BootProviders.php:17
PHP 17. Illuminate\Foundation\Application->fireAppCallbacks() /var/www/domovakniga.local/vendor/laravel/framework/src/Illuminate/Foundation/Application.php:807
PHP 18. call_user_func:{/var/www/domovakniga.local/vendor/laravel/framework/src/Illuminate/Foundation/Application.php:858}() /var/www/domovakniga.local/vendor/laravel/framework/src/Illuminate/Foundation/Application.php:858
PHP 19. App\Console\Kernel->Illuminate\Foundation\Console\{closure}() /var/www/domovakniga.local/vendor/laravel/framework/src/Illuminate/Foundation/Application.php:858
PHP 20. App\Console\Kernel->defineConsoleSchedule() /var/www/domovakniga.local/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php:90
PHP 21. App\Console\Kernel->schedule() /var/www/domovakniga.local/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php:107
обратите внимание, что я не могу видеть верхнюю часть из-за проблем с прокруткой.
Также обратите внимание, что при запуске каждого из методов этого теста с использованием filter
все работает правильно.Что сбивает с толку.
РЕДАКТИРОВАТЬ 2:
Вот класс преобразования, используемый в тесте:
<?php
namespace App\Logic\Dates;
class Transform {
/**
* Given a month in the following format: YYYY-MM
* it returns datetime for the last second of the month
*
* @param $year_and_month
* @return string
*/
static function monthEnd($year_and_month) {
$datetime = $year_and_month . '-01 00:00:00';
$time = strtotime($datetime);
$month_end = date('Y-m-t', $time) . ' 23:59:59';
return $month_end;
}
/**
* Given a month in the following manner: YYYY-MM
* it returns a datetime for the first second of that month
*
* @param $year_and_month
* @return string
*/
static function monthStart($year_and_month) {
$month_start = $year_and_month . '-01 00:00:00';
return $month_start;
}
}
РЕДАКТИРОВАТЬ 3:
Итак, я 'мы удалили проблемный тест DatesTransform
и переписали его с помощью vanilla phpunit, однако при запуске phpunit я получаю сообщение об ошибке, которое я снова не могу записать, просто записывает следующее:
PHPUnit 7.5.13 by Sebastian Bergmann and contributors.
.
вот моя команда phpunit:
vendor/bin/phpunit > /path/phpunit.log
РЕДАКТИРОВАТЬ 4:
Вот новый phpunit DatesTransformationsTest:
<?php
namespace Tests\Unit;
use App\Logic\Dates\Transform;
use Tests\TestCase;
class DatesTransformationsTest extends TestCase
{
public function testMonthEnd()
{
self::assertEquals('2018-01-31 23:59:59', Transform::monthEnd('2018-01'));
self::assertEquals('2018-02-28 23:59:59', Transform::monthEnd('2018-02'));
self::assertEquals('2018-03-31 23:59:59', Transform::monthEnd('2018-03'));
self::assertEquals('2018-04-30 23:59:59', Transform::monthEnd('2018-04'));
self::assertEquals('2018-05-31 23:59:59', Transform::monthEnd('2018-05'));
self::assertEquals('2018-06-30 23:59:59', Transform::monthEnd('2018-06'));
self::assertEquals('2018-07-31 23:59:59', Transform::monthEnd('2018-07'));
self::assertEquals('2018-08-31 23:59:59', Transform::monthEnd('2018-08'));
self::assertEquals('2018-09-30 23:59:59', Transform::monthEnd('2018-09'));
self::assertEquals('2018-10-31 23:59:59', Transform::monthEnd('2018-10'));
self::assertEquals('2018-11-30 23:59:59', Transform::monthEnd('2018-11'));
self::assertEquals('2018-12-31 23:59:59', Transform::monthEnd('2018-12'));
self::assertEquals('2016-02-29 23:59:59', Transform::monthEnd('2016-02'));
}
public function testMonthStart()
{
self::assertEquals('2018-01-01 00:00:00', Transform::monthStart('2018-01'));
self::assertEquals('2018-02-01 00:00:00', Transform::monthStart('2018-02'));
self::assertEquals('2018-03-01 00:00:00', Transform::monthStart('2018-03'));
self::assertEquals('2018-04-01 00:00:00', Transform::monthStart('2018-04'));
self::assertEquals('2018-05-01 00:00:00', Transform::monthStart('2018-05'));
}
}