我是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,但它们没有帮助。
我希望我能提供截图,但我不能。我想尽可能具体。 我感谢任何帮助。
答案 0 :(得分:1)
我也遇到了这个错误..我也在输出标签中找到了这个
Fatal error: Class 'package\path\Tests\TestCase' not found in project\path\package\path\Tests\ClientTest.php on line 25
此处,TestCase
是PHPUnit_Framework_TestCase
的子类,并且与当前测试文件一起使用的目录结构与源文件不同。所以,就我而言,这是一个路径问题。
我注意到的是我需要添加一个bootstrap文件来包含测试路径中的文件和运行时的源路径。
这个引导程序可以由NetBeans生成。请参阅此处的说明:https://netbeans.org/kb/docs/php/phpunit.html#project-specific-configurations
我当然有另一个bootstrap.php(由另一个开发人员添加)。我只需要像下面那样链接bootstrap,
祝你好运!答案 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'开头