试图用异常的XML配置文件的结果运行的PHPUnit(Attempting to run PHPUn

2019-06-26 20:12发布

我想(相当长一段时间,从伙计们的帮助在PHP聊天室),以成功地用的PHPUnit集成PhpStorm。

我已经设置了phpunit.xml文件,如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<phpunit
        backupGlobals               = "false"
        backupStaticAttributes      = "false"
        colors                      = "true"
        convertErrorsToExceptions   = "true"
        convertNoticesToExceptions  = "true"
        convertWarningsToExceptions = "true"
        processIsolation            = "false"
        stopOnFailure               = "false"
        syntaxCheck                 = "false"
        bootstrap                   = "bootstrap.php" >

    <testsuites>
        <testsuite name="Lamed Test Suite">
            <directory>Custom/*</directory>
        </testsuite>
    </testsuites>

</phpunit>

并成功地配置PHP风暴从该文件中读取。

问题是,我在运行测试得到PhpStorm控制台以下错误:

D:\Websites\php\php.exe C:\fakepath\ide-phpunit.php --bootstrap D:\Websites\htdocs\lamed\tests\boostrap.php --configuration D:\Websites\htdocs\lamed\tests\phpunit.xml
Testing started at 23:51 ...

Fatal error: Uncaught exception 'PHPUnit_Framework_Exception' with message 'Neither "Lamed Test Suite.php" nor "Lamed Test Suite.php" could be opened.' in D:\Websites\php\pear\PHPUnit\Util\Skeleton\Test.php:100
Stack trace:
#0 D:\Websites\php\pear\PHPUnit\TextUI\Command.php(157): PHPUnit_Util_Skeleton_Test->__construct('Lamed Test Suit...', '')
#1 C:\Users\Dor\AppData\Local\Temp\ide-phpunit.php(95): PHPUnit_TextUI_Command->run(Array, true)
#2 C:\Users\Dor\AppData\Local\Temp\ide-phpunit.php(434): IDE_PHPUnit_TextUI_Command::main()
#3 {main}
  thrown in D:\Websites\php\pear\PHPUnit\Util\Skeleton\Test.php on line 100

Process finished with exit code 255

这显然读取从name=在属性上的testsuite元素。 现在的问题是, 为什么呢?

更新

  • 我运行Windows 7的SP1 64位和PHPStorm 4.0.3。 PHPUnit的版本是3.6.12。
  • 键入phpunit -c "D:\Websites\htdocs\lamed\tests\phpunit.xml"在CLI实际上给出了相同的结果。
  • 我的Custom目录在同一文件夹中找到phpunit.xml文件。

我很困惑。 希望得到任何形式的帮助。

Answer 1:

删除/*<directory>元素。 此元素的文本内容应指向一个目录,而不是文件名匹配。

<directory>Custom</directory>

见PHPUnit的配置文件上指定单独的文件和包容模式的更多信息。

默认情况下,在结尾的文件Test.php (如UserTest.php )将被检查的测试用例。 如果你有不同的命名约定,你可以切换或添加suffix属性。 例如,如果你的名字你测试,如User.test.php使用:

<directory suffix=".test.php">Custom</directory>


Answer 2:

你体验什么是后备。 它看起来像你的测试套件是空的(并没有其他附加的非空测试套件以及)。

在这种情况下,PHPUnit的意志也尝试只是开一些配件,这是行不通的。 然后你看到一个错误。

  • 如果你只有一个空的测试包中,你会看到增加了它的尝试测试套件和PHP的名称除外。

     Uncaught exception 'PHPUnit_Framework_Exception' with message 'Neither "Empty-Testuite.php" nor "Empty-Testuite.php" could be opened.' 
  • 如果你有一个以上的空测试套件和没有工作的测试套件,你会看到大约只有PHP的错误,没有名字加入。

     Uncaught exception 'PHPUnit_Framework_Exception' with message 'Neither ".php" nor ".php" could be opened.' 
  • 如果您有至少一个工作测试套件,但一个或多个空的测试包,你会看到每个空的测试包,但没有错误的简短报告:

     Empty test suite. 

当我写的,这是一个备用的,必须并不意味着这种行为是由PHPUnit的预期。 看到你的情况错误,因为你的测试开始之前,你至少需要有一个运行正常。 你开始与配置的测试包,同前。

修正了测试缺少潜在的问题和错误消失。

通配符*如在其他答复中提到-即使我敢肯定,这是正确的没有它-只要我能看到玩弄你的问题没有任何作用。


在这个答案的信息是基于

  • 塞巴斯蒂安伯格曼PHPUnit的3.6.7。
  • PHP 5.4.5通过php.net


Answer 3:

有同样的问题改值目录的绝对路径,而不是相对路径和它的工作。 例如我改变测试到C:\蚀\工作区\ testweb

太糟糕了,我不得不通过大量的非信息这不是在文档中提到的,也不是记录如何开始使用XML配置文件的命令行界面。

PHPUnit的-c测试/ all.xml

PHP的测试文件与测试结束还有像myTest.php甚至当你添加文件元素C:\日食\工作区\ testweb \测试\类\ something.php是行不通的,但C:\日食\工作区\ testweb \测试\类\ somethingtest.php会工作



文章来源: Attempting to run PHPUnit with a configuration XML file results in exception