2013-02-25 68 views
24

我在使用phpunit时遇到了一些问题。当我执行测试,PHPUnit的给我这些警告:Laravel 4在TestCase中找不到测试

1)警告 没有在课堂上找到“照亮\基金会\测试\ TestCase的”测试。

2)警告 在“TestCase”类中找不到测试。

但我想忽略这些文件,这样的PHPUnit不会尝试从他们运行测试。

如何做到这一点?

回答

47

希望现在您已经找到了答案,但如果你没有这可能帮助:

嗯 - 请确保文件名和类名的所有比赛了。例如,对于 示例,没有带有BarTest.php文件名的FooTest类。

另外,你肯定你在 app/tests目录下有一个* Test.php文件吗?

[...]

就是这样的,即我的测试一个曾在文件名-VS-类名拼写错误。奇怪的是,类错误在TestCase类中发出警告,而不是标记实际导致它的类。

来源: https://laracasts.com/forum/?p=83-warnings-for-testcase-illuminate-foundation-testing-testcase/0

基本上,确保你的文件名和类名相匹配。我也在这一块上敲了敲头。

+0

如果testcase(method)不以工作测试开始,也可能发生。 – Braders 2014-04-12 13:53:59

+2

链接已死(这就是为什么SO答案中的链接是个坏主意)。 – Roscius 2014-05-25 00:31:14

+10

快速提示:使基类(在本例中称为TestCase)成为抽象类。 – DerLola 2014-06-11 14:48:10

41

一个额外的解决方案可能是使TestCase类抽象。通过这样做,PHPUnit将不会尝试在其中找到任何测试。

abstract class TestCase {

+0

这个答案今天保存我的一天。非常感谢@德罗拉 – 2015-05-11 10:31:03

+0

也保存了我。 PHPunit抱怨在环境设置的基类中的测试 – 2015-10-22 10:30:01

+0

谢谢你真的回答了这个问题.. – 2016-01-19 00:57:07

4

对我来说,问题是,类名不匹配的文件名,这样一类定义为

class ExampleTest { 

并没有被ExampleTest.php。

如果有你想忽略某些测试文件,然后进入phpunit.xml文件,其内部

<testsuite name="Application Test Suite"> 
    <directory></directory> 
</testsuite> 

更换标签目录标签,并指定要使用特定的测试文件。

0

对我来说,我有一个常规错误。解决方法是将类名称和文件从TestFoo更改为FooTest

0

我也面临同样的问题。我已检查过我的文件名和班级名称分别与AuthTest.phpAuthTest相同。

但我仍然得到相同的警告,也许是因为我已将ExampleTest.php更名为AuthTest.php

无论如何,我删除了以前的文件,并使用php artisan make:test AuthTest 它的工作。