“没有执行测试”我根本无法在NetBeans中运行任何PHP测试

时间:2013-08-08 02:49:38

标签: php testing netbeans phpunit

我是NetBeans的新手,我只是想在我之前开发的代码中运行代码覆盖率测试。我不知道我做错了什么。

我正在使用 NetBeans 7.3.1 Wamp Server 2.4 ,安装 PHPUnit Skeleton Generator 通过< strong> PEAR ,并在NetBeans设置中设置这些文件。

我使用现有资源制作了该项目。在浏览器中运行似乎没问题。我甚至可以使用XDebug进行调试。

但是,当我右键单击项目名称和“Test”时,它会在“测试结果”窗口中显示“未执行测试。(0.0 s)”,这在“输出”窗口中显示:

PHPUnit 3.7.23 by Sebastian Bergmann.

Configuration read from C:\wamp\www\test\configuration.xml



Time: 141 ms, Memory: 2.00Mb

No tests executed!

Generating code coverage report in Clover XML format ... done

我尝试在PHP文件上运行测试,它返回一个信息对话框“找不到所选源文件的测试文件。”

我右键单击PHP文件,并选择“工具 - >创建PHPUnit测试”,它返回一个警告对话框“未为以下文件生成测试:(文件名)查看输出窗口中的日志。 “但是在“输出”窗口中没有更改任何内容。

我生成了PHPUnit Bootstrap和XML Configuration,但它们没有帮助。

我希望我能提供截图,但我不能。我想尽可能具体。 我感谢任何帮助。

5 个答案:

答案 0 :(得分:1)

我也遇到了这个错误..我也在输出标签中找到了这个

Fatal error: Class 'package\path\Tests\TestCase' not found in project\path\package\path\Tests\ClientTest.php on line 25

此处,TestCasePHPUnit_Framework_TestCase的子类,并且与当前测试文件一起使用的目录结构与源文件不同。所以,就我而言,这是一个路径问题。

我注意到的是我需要添加一个bootstrap文件来包含测试路径中的文件和运行时的源路径。

这个引导程序可以由NetBeans生成。请参阅此处的说明:https://netbeans.org/kb/docs/php/phpunit.html#project-specific-configurations

我当然有另一个bootstrap.php(由另一个开发人员添加)。我只需要像下面那样链接bootstrap,

enter image description here

祝你好运!

答案 1 :(得分:0)

PHPUnits消息:

  

没有执行测试!

只是意味着没有找到任何测试。这可能有多种原因:

首先,如果没有测试,则不执行任何测试。

但也有可能存在测试,但配置说要跳过这些(例如,某些测试被分组到名为 slow 的组中,配置XML表示要排除 slow 来自运行)。

对于您的情况,这肯定是一个配置问题。我不熟悉Netbeans但是因为你已经可以成功执行PHPUnit,你的部分设置看起来很有效。

下一步是找出何时调用test-runner查找测试的位置。可能只是 tests 目录丢失或未指定。例如。例如,检查configuration.xml中的配置,并将其与文档进行比较,以仔细检查所有设置。

这不是一个非常具体的答案,而且对Netbeans更流利的人可能会提供更多帮助,但是由于你没有显示进一步的截图,这是我最好的选择如何继续解决问题以及原因。< / p>

答案 2 :(得分:0)

似乎我越来越接近解决方案了。我发现问题不在于配置,而在于代码本身。

我不知道这是否是一个愚蠢的问题,但似乎测试只接受用OOP编写的PHP代码。我尝试用类创建另一个文件,我可以毫无问题地制作测试文件。至少我可以看到测试结果从“没有测试执行”变为“没有测试通过,1测试跳过”

我的代码是在没有OOP的情况下编写了几个月而我根本不知道。这是否意味着我必须重新编写所有这些内容?

答案 3 :(得分:0)

当你在测试类的构造函数中放置一个断言并且这个断言失败时,就会发生这种情况。 然后你只会看到警告&#39;没有执行测试!&#39; (不是很有帮助)但我想不应该在构造函数中放置断言(这是在phpunit 4.1~中)。

答案 4 :(得分:0)

因为我的测试名称不是以'test'开头