Nette\Tester error: Namespace declaration
- xlilien
- Člen | 27
Ahoj, podle článku Velestručné testování presenterů v Nette zkouším rozchodit testy. Podle návodu v článku jsem pomocí composeru stáhnul sandbox, kde je připravený bootstrap.php i ukázkový test.
Pokud v příkazovém řádku ve složce tests spustím test pomocí
php ../libs/nette/tester/Tester/tester.php ExampleTest.phpt
test skončí chybou:
<b>Fatal error</b>: Namespace declaration statement has to be
the very first statement in the script in <b>C:\Program Files
(x86)\EasyPHP-12.0\www\tmp\sandboxWithTests2\tests\ExampleTest.phpt</b>
on line <b>3</b><br />
Co mě zaráží je, že když ze začátku souboru ExampleTest.phpt odmáznu
<?php
(a tím pádem bude jako první na začátku souboru
deklarace namespace), test projde. Každopádně když namísto
Assert::true( true );
napíšu
Assert::false( true );
test projde taky.
Už tu s tím chvíli zápasím, zkoušel jsem projít jiné příspěvky,
ale nic mi nepomohlo. Pokud mi poradíte, jakým způsobem se zbavit erroru
s namespace a zařídit, aby test neprošel pomocí
Assert::false( true );
budu Vám vděčný.
Předem díky.
- xlilien
- Člen | 27
Je fakt, že když pomocí Notepad++ kovertuju formát souboru do UTF-8 bez BOM, tak se problém s namespace vyřeší. Nicméně potom nastává chyba s mb_convert_encoding. Buď je tedy formát UTF-8 s chybou s namespaces nebo UTF-8 bez BOM a s chybou mb_convert_encoding.
- xlilien
- Člen | 27
Podařilo se mi to rozchodit, problém bude pravděpodobně v nastavení mého prostředí.
Do složky tests stáhnu Hosiplanovo run-tests.sh (zmiňovaný u něj na blogu) a vytvořím soubor php.ini-unix, do kterého nakopíruju konfiguraci z php.ini. V GitBash potom spustím run-tests.sh a testy projdou.
- jiri.pudil
- Nette Blogger | 1029
Když totiž Nette\Testeru neřekneš, jaký konfigurační soubor má
použít (-c
), nepoužije
žádný. Tipuji, že problém byl v tom.