我无法使用phpunit测试:无法打开文件“ autoload.php”

use*_*191 6 php phpunit wamp composer-php


配置:

  • PHPUNIT:4.5.0
  • PHP的:5.4.12
  • 服务器:沼泽
  • 作曲者:版本1.0-dev 2015-02-17 21:55:44

composer.json:

{
    "require-dev": {
        "phpunit/phpunit": "4.5.*"
    }
}
Run Code Online (Sandbox Code Playgroud)

autoload.php:

<?php
date_default_timezone_set("Europe/Paris");

require __DIR__.'/vendor/Symfony/Component/ClassLoader/UniversalClassLoader.php';

use Symfony\Component\ClassLoader\UniversalClassLoader;

$loader = new UniversalClassLoader();

$loader->registerNamespaces(array(
    'Hangman' => __DIR__.'/src',
    'Symfony' => __DIR__.'/vendor',
));

$loader->register();
Run Code Online (Sandbox Code Playgroud)

phpunit.xml:

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

<!-- http://phpunit.de/manual/4.1/en/appendixes.configuration.html -->
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/4.1/phpunit.xsd"
         backupGlobals="false"
         colors="true"
         bootstrap="autoload.php"
        >

    <testsuites>
        <testsuite name="hangman">
            <directory>tests/Hangman/Tests</directory>
        </testsuite>
    </testsuites>

    <filter>
        <blacklist>
            <directory>vendor</directory>
        </blacklist>
    </filter>
</phpunit>
Run Code Online (Sandbox Code Playgroud)

问题:

我执行了: phpunit --bootstrap autoload.php tests

我的错误: Cannot open file "autoload.php"

你能帮助我吗 ?

小智 7

我正在使用 PHPUnit 7 并基于我在下面提到的解决方案,该解决方案经过测试并 100% 工作

如果您是 Windows 用户,则在 cmd 上键入以下内容:"vendor/bin/phpunit" --bootstrap ./vendor/autoload.php ./tests/EmailTest

确保我在供应商和测试之前更新了 ./。


Jen*_*och 5

你可以bootstrap="vendor/autoload.php"试试你的phpunit.xml. 然后 PHPUnit 和您的测试将使用 Composer Autoloader。

或者,您可以autoload.php通过添加require 'vendor/autoload.php';. 这会导致注册两个自动装载机。

然后运行:

  1. composer update - 获取依赖项并重建自动加载文件
  2. phpunit - 执行测试运行

您不需要运行phpunitwith --bootstrap,因为该指令已在您的 phpunit.xml 中设置。


我认为您的文件夹布局不正确。你从这个开始:

c:\wamp\www\yourproject
  \src
  \tests
    \- phpunit.xml.dist
  \vendor
  \composer.json
Run Code Online (Sandbox Code Playgroud)
  1. 添加phpunitrequire-devcomposer.json的部分
  2. 添加"bin-dir" : "bin",以便 phpunit.bat 存在于c:\wamp\www\yourproject\bin\phpunit.bat而不是c:\wamp\www\yourproject\vendor\bin\phpunit.bat
  3. composer install 或更新
  4. 执行 c:\wamp\www\yourproject\bin\phpunit.bat -c c:\wamp\www\yourproject\tests\phpunit.xml.dist