Laravel Dusk junit не входит в файл - PullRequest
0 голосов
/ 23 июня 2019

Я написал несколько автоматических тестов с использованием 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'));
    }
}

1 Ответ

0 голосов
/ 24 июня 2019

Решил, оказалось, что я определил метод внутри schedule метода консоли Kernel.php, и это вызывало ошибки как дублирующее определение по какой-то причине, не знаю почему.Как только я перенес его в свой класс, проблемы исчезли!

...