Laravel -phpunit тесты выдают ошибку - нет активной транзакции - PullRequest
0 голосов
/ 19 апреля 2020

Я использую конвейер bitbucket для запуска и развертывания моего проекта. У меня есть пара тестов, которые используют транзакцию, чтобы следовать принципу атомарности, это одна из этих транзакций

DB::transaction(function () use ($request, $child) {

    $this->authorize('accessRequestMoney', $child);

    $this->model->whereUserId($this->authenticated->id)->forceDelete();

    $data = [
                'amount'=> (float)$request->amount * 100,
                'day'=>$request->day,
                'enabled'=>$request->has('enabled') ? $request->enabled : true,
            ];

    $this->model->create(['user_id' => $this->authenticated->id, 'children_id' => $child->id] + $data);

}

Но, к сожалению, я получаю следующую ошибку

PDOException: There is no active transaction

Я должен сказать, что мир кода является частью большой функциональности. Но это единственная транзакция, которую я использую в этой функциональности. Я также написал пару тестовых сценариев ios для этой функциональности. Эта функциональность отлично работает в реальном мире.

Я больше сомневаюсь в методе авторизации, так как он вызывает исключение внутри кластера транзакций. Спасибо за любую помощь.

...