如何在 windows(cmd) 上使用 composer 运行 phpunit 测试 [重复]

Posted

技术标签:

【中文标题】如何在 windows(cmd) 上使用 composer 运行 phpunit 测试 [重复]【英文标题】:How can I run a phpunit test using composer on windows(cmd) [duplicate] 【发布时间】:2016-04-07 09:00:08 【问题描述】:

我想在本地 Windows 机器上运行 phpunit 测试..(使用 wamp)..

我已经全局安装了composer..并且phpunit安装在我的本地目录..

文件夹结构..

_________tests
|          |
|          |______PagesTest.php
|
|________vendor
           |
           |______bin
                   |
                   |_____phpunit  

在我的 localroot(www)..我创建了一个 phpunit.xml 文件..

<?xml version="1.0" encoding="UTF-8"?>

<phpunit convertWarningsToExceptions="true"
        convertNoticesToExceptions="true"
        convertErrorsToExceptions="true"
        backupStaticAttributes="false"
        processIsolation="false"
        stopOnFailure="false"
        backupGlobals="false"
        syntaxCheck="false"
        colors="true">
    <testsuites>
        <testsuite name="Punta Test Suite">
            <directory>./tests/</directory>
        </testsuite>
    </testsuites>
</phpunit>        

在 Cmd 上我试过了:

C:\wamp\www\vendor\bin>phpunit PagesTest

输出是

Cannot open file PagesTest.php

我不知道如何使用 composer 运行这个 PagesTest.php 文件

【问题讨论】:

你配置phpunit.xml使用自动加载器了吗? 【参考方案1】:

好的,PHPUnit 正在运行,但没有找到测试文件,因为 Composer Autoloader 没有加载。

您可以通过为 PHPUnit 添加一个配置文件来解决这个问题,该文件定义属性 bootstrap 并设置 Composer Autoloader 文件。

phpunit.xml.dist 的示例

<?xml version="1.0" encoding="utf-8" ?>
<phpunit bootstrap="./vendor/autoload.php">

    <testsuites>
        <testsuite name="My Project - TestSuite">
            <directory>./tests</directory>
        </testsuite>
    </testsuites>

</phpunit>

然后只需运行 PHPUnit 命令:

$ ./vendor/bin/phpunit

在 Windows 上只需翻转斜线:C:\&gt; .\vendor\bin\phpunit

PHPUnit 将自动检测配置文件 (phpunit.xml.dist) 并在其引导阶段加载 Composer Autoloader。

【讨论】:

谢谢我有一个 xml 文件完全忘记了..错过了引导程序..但我在 windows (wamp)(cmd)..vendor/bin/phpunit 命令不起作用..哪个可能是 Windows 上的作曲家错误.. 很高兴我能帮上忙。 (在 Windows 上,只需翻转命令 .\vendor\bin\phpunit.bat 上的斜杠。我已经更新了我的答案。) .\vendor\bin\phpunit 作品我接受了你的回答..【参考方案2】:

如果测试类位于子目录中,则需要将完整路径传递给它,如下所示:

phpunit ./tests/PagesTest.php

您可以不带任何参数运行phpunit,这将按照phpunit.xml.distphpunit.xml 文件中的配置执行测试套件中的所有测试。

要在您的项目中通过 Composer 使用 phpunit 二进制安装,您需要使用它的路径:

./vendor/bin/phpunit ./tests/PagesTest.php

我没有安装 Windows 来测试这个,但也许您必须在调用前加上 php(如 php ./vendor/bin/phpunit)。

【讨论】:

有趣的是 php vendor/phpunit/phpunit/phpunit 解决了我的问题..

以上是关于如何在 windows(cmd) 上使用 composer 运行 phpunit 测试 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Windows 7 上使用命令 CMD 从 python django 访问和配置 postgresql 数据库

markdown 如何在Windows 10和Linux&Mac OSX上使用Terminal / cmd关闭计时器

如何使用 Nodejs 和 spawn 在 Windows 10 上以管理员身份运行一些 CMD 命令?

如何从 cmd 中找到当前的 Windows 语言?

如何让 pydoc 命令在 Windows 7 cmd 中工作?

如何通过cmd在Windows OS中更改PATH