I am currently developing a rather large web application that uses Silex as a backend. I have added PHPUnit to the project created a simple test case:
class IndexControllerText extends BaseControllerTest
{
public function testIndexPage()
{
$this->assertTrue(true);
}
}
My BaseControllerTest
is used to create the Application as described in the docs:
<?php
namespace VendorName\AppName\Tests;
use Silex\WebTestCase;
use Symfony\Component\HttpKernel\HttpKernel;
abstract class BaseControllerTest extends WebTestCase
{
public function createApplication()
{
$app = require __DIR__ . '/../../../../app/bootstrap.php';
$app['debug'] = true;
$app['exception_handler']->disable();
return $app;
}
}
My app/bootstrap.php
loads the composer autoloader:
<?php
require_once __DIR__ . '/../vendor/autoload.php';
$app = new Silex\Application();
require_once __DIR__ . '/config.php';
require_once __DIR__ . '/routing.php';
return $app;
And finally there is my phpunit.xml
in my project root. See this gist.
Unfortunately when I run phpunit -c phpunit.xml
the result says:
No tests executed!
When I run the IndexControllerTest
directly:
phpunit -c phpunit.xml src/VendorName/AppName/Tests/IndexControllerText.php
It runs the test and returns success as expected. I am pretty sure it's a configuration error within my phpunit.xml
but I can't seem to figure it out.
<?xml version="1.0" encoding="UTF-8"?>
<phpunit backupGlobals="false"
backupStaticAttributes="false"
colors="true"
convertErrorsToExceptions="true"
convertNoticesToExceptions="true"
convertWarningsToExceptions="true"
processIsolation="false"
stopOnFailure="false"
syntaxCheck="false"
>
<testsuites>
<testsuite name="YourApp Test Suite">
<directory>./tests/</directory>
</testsuite>
</testsuites>
</phpunit>