跳过测试
在开发过程中,您可能需要暂时禁用某个测试。我们建议使用 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();
随着代码库的扩展,建议考虑提高测试套件的速度。为了帮助您做到这一点,我们提供了有关优化测试套件的全面文档:优化测试