Nette Tester – Class Tester\TestCase not found
- MartinVolenec
- Člen | 36
Dobrý den,
rozhodl jsem se krom PHPUnit začít používat i Nette Tester na jiném projektu.
Udělal jsem vše podle Nette Tester stránky – průvodce.
Jsem zvyklý na testy v třídách, tak jsem si udělal následující test:
<?php
declare(strict_types=1);
use Tester\Assert;
use Tester\TestCase;
use App\Services\Authentication\OAuthToken;
/**
* Class OAuthTokenTest
*/
class OAuthTokenTest extends TestCase
{
public function testInitialization()
{
$token = 'token';
$result = new OAuthToken($token);
Assert::same($token , $result->getString());
}
}
?>
Jedná se pouze testování, zda testování funguje :)
Ve složce tests mám i soubor bootstrap:
<?php
require __DIR__ . '/../vendor/autoload.php';
Tester\Environment::setup();
date_default_timezone_set('Europe/Prague');
define('TMP_DIR', '/tmp/demo-app-tests');
?>
Dle stránky jsem pochopil, že ho Tester načítat sám.
Avšak pokud spustím vendor/bin/tester tests, skočí mi tato chyba:
<?php
_____ ___ ___ _____ ___ ___
|_ _/ __)( __/_ _/ __)| _ )
|_| \___ /___) |_| \___ |_|_\ v2.1.0
Note: No php.ini is used.
PHP 7.2.3 (cli) | php -n | 8 threads
F
-- FAILED: OAuthTokenTest.php
Exited with error code 255 (expected 0)
Fatal error: Class 'Tester\TestCase' not found in C:\xampp\htdocs\portal\tests\services\Authentication\OAuthTokenTest.php on line 19
FAILURES! (1 test, 1 failure, 0.0 seconds)
?>
Nějaké nápady, co je špatně?
- jiri.pudil
- Nette Blogger | 1029
Tester soubor bootstrap.php nenačte automaticky.
@Milo je to jenom nepromyšlený nápad, ale co bys říkal na
to, kdyby to Tester uměl, jako opt-in? Řekl bych, že většina projektů si
v testech vystačí s jedním stejným bootstrapem, takže by si mohly ten
jeden rutinní řádek ušetřit. Pro mě je require bootstrapu něco, na co asi
nejčastěji zapomenu nebo kde musím pravidelně přemýšlet, na jaké
relativní cestě ten bootstrap vůbec je, takže bych v automatickém
načítání rozhodně viděl přínos. A implementačně by to nemuselo být
složité, na první pohled by snad mohlo stačit spouštět jednotlivé testy
s -d auto_prepend_file=/path/to/bootstrap.php
Tak ne, beru zpět, byl opravdu nepromyšlený. Nedaly by se pak spouštět jednotlivé testy samostatně.
Editoval jiri.pudil (20. 12. 2018 13:23)