Laravel 4在TestCase中找不到测试
Posted
技术标签:
【中文标题】Laravel 4在TestCase中找不到测试【英文标题】:Laravel 4 No tests found in TestCase 【发布时间】:2013-02-10 23:03:42 【问题描述】:我在使用 phpunit 时遇到了一些问题。当我执行测试时,phpunit 会给我这些警告:
1) 警告 在“Illuminate\Foundation\Testing\TestCase”类中找不到测试。
2) 警告 在“TestCase”类中找不到测试。
但我想忽略这些文件,这样 phpunit 就不会尝试从它们运行测试。
怎么做?
【问题讨论】:
【参考方案1】:希望您现在找到了答案,但如果您还没有,这可能会有所帮助:
嗯 - 确保文件名和类名都匹配。为了 例如,没有文件名为 BarTest.php 的 FooTest 类。
另外,你确定你有一个 *Test.php 文件在 app/tests 目录?
[...]
就是这样,即我的一个测试在文件名与类名中有一个错字。奇怪的是,错字会在 TestCase 类中引发警告,而不是标记实际导致它的类。
来自: https://laracasts.com/forum/?p=83-warnings-for-testcase-illuminate-foundation-testing-testcase/0
基本上,确保您的文件名和类名匹配。我也对这个问题大发雷霆。
【讨论】:
如果测试用例(方法)没有从工作测试开始,也可能发生。 链接已失效(这就是为什么 SO 答案中的链接是个坏主意)。 快速提示:将基类(在本例中称为 TestCase)设为抽象类。 问题实际上是如何不评估这些文件,而您正在回答如何确保它们是...跨度> 【参考方案2】:另一个解决方案是使 TestCase 类抽象。通过这样做,PHPUnit 将不会尝试在其中找到任何测试。
abstract class TestCase
【讨论】:
也救了我。 PHPunit 抱怨在设置环境的基类中进行测试 这才是真正的答案。【参考方案3】:对我来说,问题是类名与文件名不匹配,所以一个类定义为
class ExampleTest
未命名为 ExampleTest.php。
如果您想忽略某些测试文件,则进入 phpunit.xml 文件和内部
<testsuite name="Application Test Suite">
<directory></directory>
</testsuite>
用标签替换目录标签并指定您要使用的特定测试文件。
【讨论】:
【参考方案4】:对我来说,我犯了一个约定错误。解决方案是将类名和文件从 TestFoo
更改为 FooTest
。
【讨论】:
【参考方案5】:我也遇到了同样的问题。我检查了我的文件名和类名分别与AuthTest.php
和AuthTest
相同。
但我仍然收到相同的警告,可能是因为我已将 ExampleTest.php
重命名为 AuthTest.php
。
无论如何我已经删除了以前的文件并使用了php artisan make:test AuthTest
并且成功了。
【讨论】:
以上是关于Laravel 4在TestCase中找不到测试的主要内容,如果未能解决你的问题,请参考以下文章
为啥,致命错误:在...中找不到类“PHPUnit_Framework_TestCase”?
在 laravel 5.4 中找不到类“Illuminate\Foundation\Application”