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

问题描述 投票:4回答:2

配置:

  • PHPUnit的:4.5.0
  • PHP:5.4.12
  • 服务器:WAMP
  • 作曲:1.0-dev的2015年2月17日21时55分44秒

composer.json:

{
    "require-dev": {
        "phpunit/phpunit": "4.5.*"
    }
}

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();

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>

问题:

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

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

你能帮助我吗 ?

php phpunit wamp composer-php
2个回答
3
投票

你可以给bootstrap="vendor/autoload.php"phpunit.xml一试。然后PHPUnit的,你的测试将使用自动加载作曲家。

或者你也可以通过添加autoload.php需要在你的require 'vendor/autoload.php';作曲家自动加载磁带机(除的Symfony的UCL)。这将导致两个自动加载磁带机被注册。

然后运行:

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

你不需要用phpunit运行--bootstrap,因为该指令在phpunit.xml已设置。


我觉得你的文件夹布局是不正确的。在开始使用此:

c:\wamp\www\yourproject
  \src
  \tests
    \- phpunit.xml.dist
  \vendor
  \composer.json
  1. 添加phpunit您composer.json的require-dev
  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. EXEC c:\wamp\www\yourproject\bin\phpunit.bat -c c:\wamp\www\yourproject\tests\phpunit.xml.dist

3
投票

我使用PHPUnit 7和基础上,我已经在测试低于该提到的溶液和工作100%的工作

如果你是Windows用户,然后键入以下的CMD:“供应商/斌/ PHPUnit的” --bootstrap ./vendor/autoload.php ./tests/EmailTest

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

© www.soinside.com 2019 - 2024. All rights reserved.