При запуске --coverage-html в phpunit тест завершается неудачно, если он не должен - PullRequest
0 голосов
/ 11 мая 2018

У меня есть тест, который всегда проходит, если я запускаю phpunit, но не проходит, если я запускаю phpunit --coverage-html.

. Одним из ключевых моментов в этом тесте является то, что я тестирую порядок.Порядок, кажется, меняется, когда я запускаю освещение.Что делает --coverage, что может помешать выполнению моего кода?

Версии:

  • PHP 7.1.15
  • PHPUnit 6.5.6
  • Laravel 5.5.34

Тест Phpunit

    public function testGetAUsersInvites()
    {
        $carbon = \Carbon\Carbon::create();

        $user = factory(User::class)->create();

        $user->invites()->saveMany(factory(Invite::class, 7)->make());
        // Users who are a part of the communication
        $communciationUsers = factory(User::class, 2)->create();

        // Save users to the communication
        $user->invites()->each(function($invite) use ($communciationUsers, $carbon) {
            $invite->communication->users()->attach($communciationUsers);
            // Added some messages
            $invite->communication->messages()->save(factory(Message::class)->make([
                'messageType' => 'subject',
                'created_at' => $carbon->subDays($invite->id) // force created date so we can predict the ordering
            ]));
        });

        $invite = $user->invites->first();
        $lastInvite = $user->invites->last();

        Passport::actingAs($user, ['full'], 'api');

        $this->get(self::URL . 'user/invites/list', ['Accept' => 'application/json'])
            ->assertStatus(200)
            ->assertJson([
                "data" => [
                    [
                        "id" => $invite->id,
                    ],
                    [],[],[],[],[]
                    [
                        "id" => $lastInvite->id,
                    ]
                ],
            ]);
    }

1 Ответ

0 голосов
/ 12 мая 2018

Это оказалось проблемой заказа.

Когда вы запускаете покрытие, ваше тестовое время значительно увеличивается. Это заставило мои фабрики занять больше времени на создание, что также означало, что мои времена create_at были на миллисекунды меньше, чем обычно.

Я исправил это путем жесткого кодирования моего значения созданного в моем тесте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...