【问题标题】:PHPUnit: Class <ClassName> could not be found in <ClassNameTest>.phpPHPUnit:在 <ClassNameTest>.php 中找不到类 <ClassName>
【发布时间】:2013-01-22 08:51:11
【问题描述】:

我已经束手无策了。我一定已经阅读了关于同一主题的所有 SO 问题,但并不高兴。

我无法让 phpUnit 正常工作。我已经使用 PEAR 成功安装了 phpUnit 及其依赖项。我还修改了我的 php.ini 文件并将 phpUnit 的路径添加到包含路径:(".:/php/includes:usr/lib/php/pear")。

为了测试phpunit是否正常工作,我复制了这个简单的类,所以MyClassTest.php如下:

class MyClassTest extends PHPUnit_Framework_TestCase
{
    public function testCalculate()
    {
        $this->assertEquals(2, 1 + 1);
    }
}

运行“phpunit MyClassTest”会产生以下输出:(运行“phpunit MyTestClass MyTestClass.php”会产生相同的结果);

class MyClassTest extends PHPUnit_Framework_TestCase
{
    public function testCalculate()
    {
        $this->assertEquals(2, 1 + 1);
    }
}
PHPUnit 3.7.13 by Sebastian Bergmann.

Class 'MyClassTest' could not be found in 'MyClassTest.php'.

我想不出有什么问题。我试过卸载并重新安装 phpunit/PHPUnit,但没有任何乐趣。你能找出问题所在吗?如果您需要更多信息,请告诉我,我会编辑这篇文章。提前致谢。

  • PHP 5.3.15
  • PHPUnit 3.7.13
  • OSX 10.8.2

【问题讨论】:

  • 它实际上是在显示 MyClassTest.php 文件中的代码吗?
  • 是的。不知道为什么。我见过的所有例子都没有提到类似的东西。
  • 示例不需要提及缺少的
  • 呸!!这就是问题所在!很好看的马克。我非常专注于安装/配置,以至于我什至没有考虑源文件是问题所在。学过的知识。再次感谢!

标签: php unit-testing phpunit


【解决方案1】:

您的源代码会打印到控制台,因此您似乎忘记了开头的&lt;?php

【讨论】:

  • 我一开始以为也是这样。用require语句试了一下。没有变化。
  • 在意识到 PHPUnit 在较新版本中带有自动加载器并且不再需要 require 语句后,我编辑了答案。但@Mark Ba​​ker 在 cmets 中给出了重要提示。
  • 遇到了同样的问题,因为我使用的是 PHP 短格式
  • 我刚刚发现,您必须使用完整形式的 PHP 起始标签,因此短标签不起作用。 - 不起作用 - 起作用
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-02
  • 2013-09-27
  • 2019-07-22
  • 2017-06-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多