php - Laravel phpUnit

标签 php laravel unit-testing composer-php

当我运行时 phpunit 命令它抛出来自 Sebastian Bergmann 的 PHPUnit 3.7.21 的 phpunit 帮助的所有信息。所以我建议它应该可以工作,但还没有;

当我运行时

phpunit ExampleTest.php
PHP Fatal error:  Class 'Tests\TestCase' not found in C:\xampp7\htdocs\projects\heroes\tests\Feature\ExampleTest.php on line 8

在 Laravel 中,我有“tests”文件夹

TestCase.php
<?php

namespace Tests;

use Illuminate\Foundation\Testing\TestCase as BaseTestCase;

abstract class TestCase extends BaseTestCase
{
    use CreatesApplication;
}

文件夹“功能”

ExampleTest.php

<?php

namespace Tests\Feature;

use Tests\TestCase;
use Illuminate\Foundation\Testing\RefreshDatabase;

class ExampleTest extends TestCase
{
    /**
     * A basic test example.
     *
     * @return void
     */
    public function testBasicTest()
    {
        $response = $this->get('/');

        $response->assertStatus(200);
    }
}

和文件夹“单位”

在 Laravel 根文件夹中,我有

composer.json




  {
    "name": "laravel/laravel",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "type": "project",
    "require": {
        "php": "^7.1.3",
        "fideloper/proxy": "^4.0",
        "laravel/framework": "5.6.*",
        "laravel/tinker": "^1.0",
        "laravelcollective/html": "^5.4.0",
        "laravelcollective/html": "~5.0"
    },
    "require-dev": {
        "filp/whoops": "^2.0",
        "fzaninotto/faker": "^1.4",
        "mockery/mockery": "^1.0",
        "nunomaduro/collision": "^2.0",
        "phpunit/phpunit": "^7.0"
    },
    "autoload": {
        "classmap": [
            "database/seeds",
            "database/factories"
        ],
        "psr-4": {
            "App\\": "app/"
        }
    },
    "autoload-dev": {
        "classmap": [
            "tests/TestCase.php"
        ],
        "psr-4": {
            "Tests\\": "tests/"
        }
    },
    "extra": {
        "laravel": {
            "dont-discover": [
            ]
        }
    },
    "scripts": {
        "post-root-package-install": [
            "@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
        ],
        "post-create-project-cmd": [
            "@php artisan key:generate"
        ],
        "post-autoload-dump": [
            "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
            "@php artisan package:discover"
        ]
    },
    "config": {
        "preferred-install": "dist",
        "sort-packages": true,
        "optimize-autoloader": true
    },
    "minimum-stability": "dev",
    "prefer-stable": true
}

我只需要开始单元测试

最佳答案

看起来您使用的 phpunit 在您的系统中全局安装,它非常旧,并且与您的项目自动加载无关。您应该使用 Composer 在您的项目中安装的 phpunit:

vendor/bin/phpunit

关于php - Laravel phpUnit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50197845/

相关文章:

带有 SQL Server 和准备好的语句的 PHP PDO

php - 始终显示最接近的百分位数字

postgresql - DEALLOCATE pdo_stmt 需要很长时间(几天),这正常吗?

javascript - 如何在使用 PHP 访问的 JavaScript 中存储 MySQL 数据库值

php - laravel 4 - 清理 Input::get() (e() vs HTML::laravel 4 中的实体)

laravel - 未定义路由时 Laravel 如何创建 404 View

javascript - 单元测试异步 Angular 指令

java - 用于模拟变化很大的假模型的良好单元测试实践是什么?

unit-testing - Xcode 7测试未运行,但报告成功

php - 为什么我的 .ajax 请求不起作用?