首页 > 解决方案 > 为什么 PHPUnit 进入 Laravel 返回“未执行测试!” 在执行功能测试

问题描述

我有文件tests/Feature/InvoicePaymentTest.php,他包含三个测试。首先和第二个是正确执行测试。第三个测试返回“没有执行测试!”,而不是返回错误。 说明这是如何发生的

我的代码方案

<?php

namespace Tests\Feature;

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

class SubscriptionInvoicePaymentTest extends TestCase
{

    public function testFirst()
    {
        // this test correctly exeqted
    }

    public function testSecond()
    {
        // this test correctly exeqted
    }

    public function nextPaymentTest()
    {
        // this test return "No tests executed!" as seen in the screenshot
    }
}

我的 phpunit.xml

<?xml version="1.0" encoding="UTF-8"?>
<phpunit backupGlobals="false"
         backupStaticAttributes="false"
         bootstrap="vendor/autoload.php"
         colors="true"
         convertErrorsToExceptions="true"
         convertNoticesToExceptions="true"
         convertWarningsToExceptions="true"
         processIsolation="false"
         stopOnFailure="false">
    <testsuites>
        <testsuite name="Unit">
            <directory suffix="Test.php">./tests/Unit</directory>
        </testsuite>

        <testsuite name="Feature">
            <directory suffix="Test.php">./tests/Feature</directory>
        </testsuite>
    </testsuites>
    <filter>
        <whitelist processUncoveredFilesFromWhitelist="true">
            <directory suffix=".php">./app</directory>
        </whitelist>
    </filter>
    <php>
        <env name="APP_ENV" value="testing"/>
        <env name="BCRYPT_ROUNDS" value="4"/>
        <env name="BROADCAST_DRIVER" value="fake"/>
        <env name="CACHE_DRIVER" value="array"/>
        <env name="SESSION_DRIVER" value="array"/>
        <env name="QUEUE_DRIVER" value="sync"/>
        <env name="MAIL_DRIVER" value="array"/>
        <env name="DB_CONNECTION" value="mysql"/>
        <env name="DB_DATABASE" value="dbName"/>
        <env name="TELESCOPE_ENABLED" value="false"/>
    </php>
</phpunit>

可能是什么问题呢?先感谢您

标签: phplaravelunit-testingphpunit

解决方案


在 phpunit 中,方法应该带有前缀test或带有@test注释才能运行。


推荐阅读