wackystudio/laravel-test-watcher

为 Laravel 提供的测试文件监视器,根据 @watch 注解自动运行特定的测试用例

1.0.14 2020-09-29 07:11 UTC

This package is auto-updated.

Last update: 2024-09-29 04:49:03 UTC


README

Logo

当你的测试或源代码更改时,运行特定的测试方法

Latest Version on Packagist Build Status Total Downloads

在查看我们的测试工作流程时,我们意识到我们多么频繁地触发测试,特别是单个测试用例或测试用例组。使用像 PHPStorm 这样的 IDE,这可以通过键盘快捷键快速完成,但在其他 IDE 或编辑器中,这并不总是那么容易。因此,我们构建了 Laravel Test Watcher。

与运行整个测试套件或必须分组测试不同,Laravel Test Watcher 可以监视你使用 @watch 注解标注的测试用例。

你可以通过运行 tests:watch artisan 命令来启动监视器。一旦你保存了一个带有 @watch 注解的测试文件中的测试用例,Laravel Test Watcher 就会自动注意到你已经添加了注解,并会在你的源代码的每次更改中运行测试用例。

当你完成测试用例的测试后,你可以通过再次移除 @watch 注解来告诉 Laravel Test Watcher 停止监视测试用例;就这么简单。

无需在 IDE 编辑器和终端之间跳转,只需在代码中添加或删除 @watch 注解即可,Laravel Test Watcher 会处理其余部分。

安装

您可以通过 composer 安装此包

composer require wackystudio/laravel-test-watcher

用法

要在测试类中监视一个测试,使用 @watch 注解如下所示

/**
* @test
* @watch
*/
public function it_runs_annotated_tests_in_this_test_file()
{
    //...
}

如果你没有使用 @test 注解,而是将测试添加到测试方法名称中,你可以像这样监视测试用例

/**
* @watch
*/
public function test_it_runs_annotated_tests_every_time_source_code_changes()
{
    //...
}

要监视测试和源代码文件的变化,像这样通过 Laravel Artisan 运行测试监视器

php artisan tests:watch

注意:对于数据库测试,我们建议你创建一个包含专用测试数据库详细信息的 .env.testing 环境文件。如果你不这样做,Laravel Test Watcher 将会测试 .env 文件中给出的数据库,我们不推荐这样做。

配置

默认情况下,Laravel Test Watcher 会监视 approutestests 文件夹中的所有文件,这意味着这些目录中任何文件的更改都会使 Laravel Test Watcher 运行所有监视的测试用例。

如果你想配置 Laravel Test Watcher 应该监视哪些目录,你可以通过运行 vendor:publish artisan 命令来发布配置文件,如下所示

php artisan vendor:publish

仅发布 Laravel Test Watcher 的配置文件或选择配置标签以发布所有 Laravel 应用程序中所有包的配置文件。

限制

尽管 Laravel Test Watcher 可以监视你想要的任何数量的测试,但它的意图不是让你在测试套件中的每个测试用例上都使用它,而是使用它来测试你当前正在实施的功能的测试。

由于无法告诉 PHPUnit 同时运行多个单个测试用例,因此所有测试用例都在自己的 PHPUnit 会话中运行,这使得测试执行速度略慢。

如果你需要运行所有测试,我们建议你运行一个老式的

./vendor/bin/phpunit

这将快速运行你的测试套件中的所有测试。

当通过 artisan 命令启动 Laravel 测试监视器时,它会启动整个 Laravel 应用程序并加载 .env 文件中定义的环境变量。这引发了一些问题,因为 PHPUnit 在运行测试时不会覆盖已加载的环境变量,导致每个测试运行都使用已加载的环境变量,而不是应该使用的测试环境变量。为了解决这个问题,Laravel 测试监视器需要一个 .env.testing 文件,其中定义了你的测试设置的所有环境变量。然后,在 Laravel 测试监视器实例化时,这些变量被用来覆盖环境变量。不幸的是,这意味着你不能使用在 phpunit.xml 文件中定义的环境变量。

测试

composer test

更新日志

有关最近更改的更多信息,请参阅 更新日志

贡献

有关详细信息,请参阅 贡献指南

安全

如果您发现任何与安全相关的问题,请通过电子邮件 tgn@wackystudio.com 联系,而不是使用问题跟踪器。

致谢

许可证

MIT 许可证(MIT)。有关更多信息,请参阅 许可证文件

Laravel 包模板

本包使用 Laravel 包模板 生成。