Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHPUnit不打开没有";的文件;。php“;后缀_Php_Testing_Phpunit - Fatal编程技术网

PHPUnit不打开没有";的文件;。php“;后缀

PHPUnit不打开没有";的文件;。php“;后缀,php,testing,phpunit,Php,Testing,Phpunit,我决定在我的项目中使用PHPUnit进行测试。为了做到这一点,我从Composer的官方网站安装了Composer(它是最新版本的Composer;我要提前一点提到这一点,以便您了解更新Composer不会解决问题),并在Composer的帮助下在命令行中安装了PHPUnit。我的composer.json如下所示: { "autoload": { "classmap": [ ""

我决定在我的项目中使用PHPUnit进行测试。为了做到这一点,我从Composer的官方网站安装了Composer(它是最新版本的Composer;我要提前一点提到这一点,以便您了解更新Composer不会解决问题),并在Composer的帮助下在命令行中安装了PHPUnit。我的
composer.json
如下所示:

{
    "autoload": {
        "classmap": [
            ""
        ]
    },
    "require-dev": {
        "phpunit/phpunit": "^9"
    }
}
<?xml version="1.0" encoding="UTF-8"?>
<phpunit bootstrap="vendor/autoload.php">
    <testsuites>
        <testsuite name="Components">
            <directory suffix="Test.php">./tests/components/</directory>
        </testsuite>
    </testsuites>
</phpunit>
我还有
phpunit.xml.dist
。看起来是这样的:

{
    "autoload": {
        "classmap": [
            ""
        ]
    },
    "require-dev": {
        "phpunit/phpunit": "^9"
    }
}
<?xml version="1.0" encoding="UTF-8"?>
<phpunit bootstrap="vendor/autoload.php">
    <testsuites>
        <testsuite name="Components">
            <directory suffix="Test.php">./tests/components/</directory>
        </testsuite>
    </testsuites>
</phpunit>
我可以执行如下命令:

  • vendor\bin\phpunit测试
  • vendor\bin\phpunit测试/组件
  • vendor\bin\phpunit测试/components/TokenGeneratorTest.php
  • vendor\bin\phpunit——测试套件组件
  • 因为只有一个测试文件,所有这些都会导致以下结果:

    PHPUnit 9.0.0 by Sebastian Bergmann and contributors.
    
    ...                                                                 3 / 3 (100%)
    
    Time: 00:00.066, Memory: 4.00 MB
    
    OK (3 tests, 3 assertions)
    
    但是,我不能执行如下命令:

  • vendor\bin\phpunit-TokenGeneratorTest
  • vendor\bin\phpunit测试/组件/TokenGeneratorTest
  • 这两个命令导致:

    PHPUnit 9.0.0 by Sebastian Bergmann and contributors.
    
    Cannot open file "TokenGeneratorTest".
    
    以及:

    我在几个教程中看到,像最后两个命令一样的命令应该可以工作,但由于某些原因,它们不工作。这可能是什么原因,以及如何使其发挥作用


    提前非常感谢。

    我不确定您为什么要使用v9.0.0(您今天应该使用v9.3.8来满足这一要求),但似乎在v9.0.0中删除了提供不带扩展名的测试文件名的功能。你会看到更老的教程

    来自8.5.8的帮助:

    PHPUnit 8.5.8 by Sebastian Bergmann and contributors.
    
    Usage:
      phpunit [options] UnitTest [UnitTest.php]
      phpunit [options] <directory>
    
    PHPUnit 8.5.8由塞巴斯蒂安·伯格曼和贡献者编写。
    用法:
    phpunit[options]UnitTest[UnitTest.php]
    phpunit[选项]
    
    来自9.0.0的帮助:

    PHPUnit 9.0.0 by Sebastian Bergmann and contributors.
    
    Usage:
      phpunit [options] UnitTest.php
      phpunit [options] <directory>
    
    phpunit9.0.0,由塞巴斯蒂安·伯格曼和贡献者编写。
    用法:
    phpunit[options]UnitTest.php
    phpunit[选项]
    
    我不确定最后两个有什么理由可以工作。你给出了一条不存在的路径。至少在前两个例子中,您给出了一个phpunit可以扫描的目录。我也不知道为什么我的phpunit是v9.0.0。无论如何,谢谢你的帮助,这是一个非常有用的评论。