0

我正在使用Pest库在 laravel 中编写测试。我my-laravel-application/tests/Integration在 laravel 中创建了目录并在其中定义了一个新的测试套件phpunit.xml

<testsuite name="Integration">
   <directory suffix=".test.php">./tests/Integration</directory>
</testsuite>

所以 laravel 承认集成目录中的测试文件,我可以在一个单独的目录中用正确的名称(集成目录)编写我的集成测试,我把我的测试文件放在my-laravel-application/tests/Integration目录中,运行时出现以下错误php artisan test

InvalidArgumentException - Unknown format "name"
vendor/fakerphp/faker/src/Faker/Generator.php:657

这表明$this->faker->name()UserFactory(我在测试中使用 UserFactory 类)中的代码行有问题,它表示 $this->faker 上不存在 name() 方法。但是我的测试在将它们移动到my-laravel-application/tests/Integration目录之前可以正常工作。真正的问题是什么,我该如何解决?

4

1 回答 1

2

我根据这个答案找到了解决方案。您应该通过将以下代码添加到新创建的目录(集成目录)中的所有测试来强制使用Tests\TestCase(而不是) :PHPUnit\Framework\TestCase/tests/Pest.test

uses(Tests\TestCase::class)->in('Integration');
于 2022-01-03T13:19:57.723 回答