跳过测试
在开发过程中,您可能需要暂时禁用某个测试。我们建议使用 skip() 方法,而不是注释掉代码。
1it('has home', function () {2 //3})->skip();
运行测试时,Pest 会告知您哪些测试被跳过了。
您还可以提供跳过测试的原因,Pest 会在运行测试时显示该原因。
1it('has home', function () {2 //3})->skip('temporarily unavailable');
此外,您可能需要根据特定条件跳过测试。在这种情况下,您可以将布尔值作为 skip() 方法的第一个参数。只有当布尔值计算结果为 true 时,才会跳过此测试。
1it('has home', function () {2 //3})->skip($condition == true, 'temporarily unavailable');
您可以将闭包作为 skip() 方法的第一个参数,以便在测试用例的 beforeEach() 钩子执行后推迟条件的计算。
1it('has home', function () {2 //3})->skip(fn () => DB::getDriverName() !== 'mysql', 'db driver not supported');
要在特定操作系统上跳过测试,您可以使用 skipOnWindows()、skipOnMac() 或 skipOnLinux()。
1it('has home', function () {2 //3})->skipOnWindows(); // or skipOnMac() or skipOnLinux() ...
或者,您可以使用 onlyOnWindows()、onlyOnMac() 或 onlyOnLinux() 在除一个操作系统之外的所有操作系统上跳过测试。
1it('has home', function() {2 //3})->onlyOnWindows(); // or onlyOnMac() or onlyOnLinux() ...
有时,您可能希望在特定 PHP 版本上跳过测试。在这种情况下,您可以使用 skipOnPhp() 方法。
1it('has home', function () {2 //3})->skipOnPhp('>=8.0.0');
skipOnPhp() 方法的有效运算符为 >、>=、< 和 <=。
最后,您甚至可以在 beforeEach() 钩子中调用 skip() 方法,以便方便地跳过整个测试文件。
1beforeEach(function () {2 //3})->skip();
随着代码库的扩展,建议考虑提高测试套件的速度。为了帮助您做到这一点,我们提供了有关优化测试套件的全面文档:优化测试