phpunit 没有在 laravel 中运行

问题描述 投票:0回答:4

我尝试用示例测试运行 phpunit,但它没有执行。它显示未执行测试。

我的默认文件包含 ExampleTest.php 和 TestCase.php

C:\xampp\htdocs mber_fuel>phpunit PHP 警告:“继续”定位 switch 相当于“break”。您是要使用“继续 2”吗?在 C:\xampp\php\pear\PHPUnit\TextUI\Command.php 第 277 行

警告:“continue”瞄准开关等同于“break”。你是否 意思是使用“继续2”?在 C:\xampp\php\pear\PHPUnit\TextUI\Command.php 第 277 行 PHP 警告: “continue”定位开关等同于“break”。你的意思是 使用“继续2”?在 C:\xampp\php\pear\PHPUnit\TextUI\Command.php 上 285号线

警告:“continue”瞄准开关等同于“break”。你是否 意思是使用“继续2”?在 C:\xampp\php\pear\PHPUnit\TextUI\Command.php 第 285 行 Sebastian Bergmann 的 PHPUnit 3.7.21。

从 C:\xampp\htdocs mber_fuel\phpunit.xml 读取配置

时间:90 毫秒,内存:8.00MB

没有执行测试!

php laravel lumen
4个回答
3
投票

看起来您正在 Windows 机器上运行 PHPUnit 的全局实例。我有同样的问题,解决方案非常简单:

  1. 使用Composer管理的本地版本的PHPUnit(应该比3.7.21的全局环境版本新很多)
  2. 调用测试运行程序时使用反斜杠而不是正斜杠。

例如,如果我在项目的根目录中,我会运行

vendor\bin\phpunit

然后您的测试应该运行并打印结果。


3
投票

我假设你是这样运行的?

./vendor/bin/phpunit

要么像这样用引号括起来:

"./vendor/bin/phpunit"

或者使用 powershell 运行它,只需在 cmd 中输入 powershell 然后以常规方式运行它:

./vendor/bin/phpunit

0
投票

Laravel 使用

php artisan test .\tests\Feature\ExampleTest.php

用于测试,而不是 phpunit。 https://laravel.com/docs/10.x/testing。我刚遇到同样的情况,试图在新工具上使用旧方法 :)


0
投票

您看到的警告消息与您使用的 PHPUnit 版本有关,暂时可以忽略。

关于没有执行测试的问题,可能有以下几个原因:

测试文件不在正确的目录中:PHPUnit 希望测试文件位于项目根目录中名为 tests 的目录中。确保您的测试文件在此目录中。

测试文件不遵循正确的命名约定:PHPUnit 希望测试文件以它们正在测试的类命名,并在末尾附加 Test。例如,如果您正在测试一个名为 MyClass 的类,则您的测试文件应命名为 MyClassTest.php。

测试类未扩展 PHPUnit 的 TestCase 类:为了让 PHPUnit 将您的类识别为测试类,它必须扩展 PHPUnit\Framework\TestCase 类。

测试方法没有正确的命名约定:PHPUnit 期望测试方法以单词 test 开头,后跟一个描述性的方法名称。

测试类中没有定义测试方法:确保你的测试类至少包含一个测试方法。

仔细检查这些因素以确保您的测试能够正确执行。如果问题仍然存在,请尝试使用 --debug 选项运行 PHPUnit 以获取有关问题所在的更多信息。

© www.soinside.com 2019 - 2024. All rights reserved.