我已经实现了一些Symfony的best practices,即:
<?php
namespace App\Tests;
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
class ApplicationAvailabilityFunctionalTest extends WebTestCase
{
private $client;
public function __construct() {
$this->client = static::createClient();
$this->client->followRedirects();
}
/**
* @param $url
* @dataProvider urlProvider
*/
public function testPageIsSuccessful($url)
{
$this->client->request('GET', $url);
$this->assertTrue($this->client->getResponse()->isSuccessful());
}
public function urlProvider()
{
return [
['/'],
['/en']
];
}
}
然而,当我运行php bin/phpunit
时,我得到:
No tests executed!
有人知道为什么吗?我在Symfony 4和PHPUnit 6.5.5
更新
这是我的phpunit.xml/dist
文件:
<?xml version="1.0" encoding="UTF-8"?>
<!-- https://phpunit.de/manual/current/en/appendixes.configuration.html -->
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/6.1/phpunit.xsd"
backupGlobals="false"
colors="true"
bootstrap="vendor/autoload.php"
>
<php>
<ini name="error_reporting" value="-1" />
<env name="KERNEL_CLASS" value="App\Kernel" />
<env name="APP_ENV" value="test" />
<env name="APP_DEBUG" value="1" />
<env name="APP_SECRET" value="s$cretf0rt3st" />
<env name="SHELL_VERBOSITY" value="-1" />
<!-- define your env variables for the test env here -->
<env name="DATABASE_URL" value="postgresql://..." />
</php>
<testsuites>
<testsuite name="Project Test Suite">
<directory>tests/</directory>
</testsuite>
</testsuites>
<filter>
<whitelist>
<directory>./src/</directory>
</whitelist>
</filter>
<listeners>
<listener class="Symfony\Bridge\PhpUnit\SymfonyTestsListener" />
</listeners>
</phpunit>
在我的composer.json
:
"autoload-dev": {
"psr-4": {
"App\\Tests\\": "tests/"
}
}
更多调查结果
当我使用与\src
中相同的命名空间实现控制器测试类时,会检测到它并执行相同的测试!这里发生了什么?
答案 0 :(得分:0)
我使用VSCode,Elon Mallin的PHPUnit 4.0.2插件,phpunit-9.0.1.phar。
当我在测试中添加* @test时,“未执行测试!”问题解决了。
/ ** * @测试 * @dataProvider environmentVariables * * / 公共函数get_client_ip_return_the_assert_When_Environment_The_Variable_Is_Found($ env,$ assert) {...
好的(6个测试,6个断言)