首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHPUnit报告PHPUnit_Framework_Exception

PHPUnit报告PHPUnit_Framework_Exception
EN

Stack Overflow用户
提问于 2011-09-26 17:46:34
回答 4查看 3.4K关注 0票数 4

我向捆绑包添加了一个简单的测试。

按照手册中的建议,我尝试让PHPUnit使用以下命令加载配置:

代码语言:javascript
复制
phpunit -c /app

phpunit.xml看起来像这样:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>

<!-- http://www.phpunit.de/manual/current/en/appendixes.configuration.html -->
<phpunit
    backupGlobals               = "false"
    backupStaticAttributes      = "false"
    colors                      = "true"
    convertErrorsToExceptions   = "true"
    convertNoticesToExceptions  = "true"
    convertWarningsToExceptions = "true"
    processIsolation            = "false"
    stopOnFailure               = "false"
    syntaxCheck                 = "false"
    bootstrap                   = "bootstrap.php.cache" >

    <testsuites>
        <testsuite name="Project Test Suite">
            <directory>../src/*Bundle/Tests</directory>
        </testsuite>
    </testsuites>
</phpunit> 

我得到的错误消息是:

代码语言:javascript
复制
root@h0x03:/var/www/fi/FrontendIntegrator# phpunit -c app/
PHP Fatal error:  Uncaught exception 'PHPUnit_Framework_Exception' with message 'Neither "Project Test Suite.php" nor "Project Test Suite.php" could be opened.' in /usr/share/php/PHPUnit/Util/Skeleton/Test.php:102
Stack trace:
#0 /usr/share/php/PHPUnit/TextUI/Command.php(157): PHPUnit_Util_Skeleton_Test->__construct('Project Test Su...', '')
#1 /usr/share/php/PHPUnit/TextUI/Command.php(129): PHPUnit_TextUI_Command->run(Array, true)
#2 /usr/bin/phpunit(49): PHPUnit_TextUI_Command::main()
#3 {main}
  thrown in /usr/share/php/PHPUnit/Util/Skeleton/Test.php on line 102

PHPUnit显然会加载该文件,并尝试查找以测试套件名称命名的PHP文件。我找不到任何关于它为什么这样做或者这样的文件应该是什么样子的信息。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-09-26 18:30:39

看起来PHPUnit试图查找一个以testsuite-tag的名称属性命名的文件

如果找不到任何测试(命名错误或目录错误),则返回

  • ;如果测试脚本中出现致命错误,则返回

  • ;该错误发生得太早,以至于PHPUnit无法将该文件的内容识别为测试-因为在此之前无法加载任何类。
票数 4
EN

Stack Overflow用户

发布于 2012-03-18 00:29:03

我今天在测试我的控制器时也遇到了同样的问题。因为PHPUnit找不到测试类,所以仅仅遵循书中的命令是行不通的。我设法找到了一个解决方法,只需指定您想要测试的测试文件,它就会工作。

代码语言:javascript
复制
phpunit -c app src/Acme/DemoBundle/Tests/Utility/CalculatorTest.php
票数 3
EN

Stack Overflow用户

发布于 2014-05-14 05:02:25

我碰巧在我的包中有一个额外的目录级别。我用MyVendorName\MyProject\MyBundleNameBundle代替了MyVendorName\MyBundleNameBundle

testsuites部分中,phpunit.xml.dist中的默认目录如下:

代码语言:javascript
复制
<testsuites>
    <testsuite name="Project Test Suite">
        <directory>../src/*/*Bundle/Tests</directory>
        <directory>../src/*/Bundle/*Bundle/Tests</directory>
    </testsuite>
</testsuites>

但是没有一个与我的捆绑包名称空间匹配:Xmontero\Emperors\AdminBundle,它的测试依次位于目录src/Xmontero/Emperors/AdminBundle/Tests中。

此外,我的所有包都具有该语法,并且我删除了使用其他语法(如Acme\DemoBundle)的所有包。因此,phpunit没有找到任何测试。

我是这样解决的:在phpunit.xml.dist中,就在这条线下面

代码语言:javascript
复制
<directory>../src/*/*Bundle/Tests</directory>

我添加了这一行

代码语言:javascript
复制
<directory>../src/*/*/*Bundle/Tests</directory>

所以它是这样写的:

代码语言:javascript
复制
<testsuites>
    <testsuite name="Project Test Suite">
        <directory>../src/*/*Bundle/Tests</directory>
        <directory>../src/*/*/*Bundle/Tests</directory>
        <directory>../src/*/Bundle/*Bundle/Tests</directory>
    </testsuite>
</testsuites>

...and一切正常;)

-- 1天后编辑--

现在,当我运行phpunit -c app --coverage-html myNiceDir时,它给我提供了关于测试本身的覆盖率报告--当我希望它只给我提供被测系统的覆盖率时。

这是因为有一个遵循相同模式的whitelist,并且需要在exclude列表中添加一些内容:

它读到的地方是:

代码语言:javascript
复制
<exclude>
    <directory>../src/*/*Bundle/Resources</directory>
    <directory>../src/*/*Bundle/Tests</directory>
    <directory>../src/*/Bundle/*Bundle/Resources</directory>
    <directory>../src/*/Bundle/*Bundle/Tests</directory>
</exclude>

我改成这样:

代码语言:javascript
复制
<exclude>
    <directory>../src/*/*Bundle/Resources</directory>
    <directory>../src/*/*/*Bundle/Resources</directory>
    <directory>../src/*/*Bundle/Tests</directory>
    <directory>../src/*/*/*Bundle/Tests</directory>
    <directory>../src/*/Bundle/*Bundle/Resources</directory>
    <directory>../src/*/Bundle/*Bundle/Tests</directory>
</exclude>

我希望现在它是正确的;)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7553311

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档