我正在用phpUnit玩一个星期。
我将逐步在以下位置提供文档
这时我处于代码覆盖率。我设法生成了小的测试-coverage-html (通过控制台)。我希望一切都可以通过phpStorm运行。
我正在努力寻找包含路径。我可以在控制台中看到错误,但是这些根本没有帮助。
这是我的控制台输出的样子:
这是我在此文件中唯一使用的地方
这是用于测试和显示(在控制台中)文件的文件夹结构的样子
|- dir:Boostrap
|- dir:Coverage
|- dir:Database
|- dir:Interfaces
|- dir:Methods
|---- file: BasicCalculations.php (line 3 inclusion)
|- dir:Tests
|---- file:DataDisplayingTest.php (file that I'm testing)
|---- dir:Data Providers
|-------- file:BasicCalculationDataProvider.php (line 4 inclusion)
我尝试过的/到目前为止所做的
PHPUnit test suite include path-这使我有了处理引导程序文件的想法,该文件中包含了所有必需的文件,但同样只能通过在控制台中手动运行测试来工作-我想制作它可以在phpStorm中远程工作。
PHPUnit's whitelist and blacklist seem to be ignored。此时情况看起来像这样 没有 processUncoveredFilesFromWhitelist =“ true” 的情况下,我没有包含错误,但是之后出现了更多错误: 好像它正在尝试工作,因为控制台暂时变绿了,现在我有了Coverage面板,但是我敢打赌这个错误不应该在那里。我不确定是否可以正确显示覆盖率报告。
PHPUnit error "Failed to open stream: No such file or directory"-如您所见,我已经尝试过DIR,
这是我的phpunit.xml的样子:
<?xml version="1.0" encoding="UTF-8"?>
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="phpunit.xsd"
cacheResult="true"
verbose="true">
<filter>
<whitelist processUncoveredFilesFromWhitelist="true">
<directory>/var/www/html/phpUnit</directory>
</whitelist>
</filter>
<php>
<includePath>/var/www/html/phpUnit</includePath>
</php>
</phpunit>
我玩过directory / incluedPath,尝试了类似的变体:
- /var/www/html/phpUnit
- /var/www/html/phpUnit/
- .
- ./
- <file>pointed/tested/file/here/</file>
我正在使用:
更清楚:
答案 0 :(得分:0)
我已经设法解决了我遇到的所有问题。我已经使用了上面指向的链接中提供的一些信息。
首先
包含错误
PhpUnit xml使用指令includePath,在我的情况下,它看起来像这样:
<php>
<includePath>/var/www/html/phpUnit</includePath>
</php>
通常,在这一点上问题在于…xml文件中包含includePath。此属性更改包含路径。
所以可以说您拥有这样的项目结构:
- dir: Classes
–- dir: A
–-- file: A.php class: A (extends B)
–- dir: B
–-- file: B.pphp class: B
-file: index.php
因此,从文件A.php的外观来看,您需要像这样包含B.php: ../ B / B.php
因为工作目录是
/var/www/html/phpUnit/Classes/
但是,既然您已经设置了包含路径:
var/www/html/phpUnit
文件A,尝试从phpUnit文件夹的角度加载文件B,有点在以下位置查找文件:
var/www/html
没有此指令不能解决问题,因为phpUnit似乎使用其他默认路径。
我通过更改在项目中包含文件的方式解决了这个问题:
只需使用:
include_once '../Interfaces/BasicCalculationsInterface.php';
我已经开始这样做:
include_once __DIR__.'/../Interfaces/BasicCalculationsInterface.php';
这种方式:
写入文件index.html权限被拒绝
我也偶然发现了这个问题。这实际上是某种phpStorm问题,我不知道该如何永久解决,但我已经处理了可以运行所有测试的xml文件。
基本上phpStorm为执行的测试添加了一些默认配置。
在菜单中转到
运行/编辑配置
看看字段 Test Runner选项。
就我而言,添加了phpStorm
--coverage-html /
一切都很好,但是我在笔记本电脑上使用Ubuntu作为远程主机,而phpStorm尝试通过这种方式在 / 目录中创建文件,该文件没有写权限。将其更改为某些可写文件夹或删除此行即可解决问题。
仅此而已,这就是我的xml文件的外观(以防万一有人想看看的东西)
<?xml version="1.0" encoding="UTF-8"?>
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="phpunit.xsd"
verbose="true">
<filter>
<whitelist addUncoveredFilesFromWhitelist="false">
<directory suffix=".php">/var/www/html/phpUnit</directory>
</whitelist>
</filter>
<logging>
<log type="coverage-clover" target="/var/www/html/phpunit/coverage.xml" lowUpperBound="35" highLowerBound="70"/>
<log type="coverage-html" target="/var/www/html/phpUnit/phpStormCoverageTest" lowUpperBound="35"
highLowerBound="70"/>
</logging>
<testsuites>
<testsuite name="allTests">
<directory suffix="Test.php">/var/www/html/phpUnit/Tests</directory>
</testsuite>
</testsuites>
</phpunit>