Nejdou spustit testy na PHP 8 pomocí vendor/bin/tester souboru

Polki
Člen | 553
+
0
-

Ahoj,
zkusil jsem testy nahodit přes pipelinu na gitu, ale docker trošku pozlobil.

Používám:
Ubuntu 18
PHP 8.0.7
Nette 3

Když spouštím testy lokálně, tak vše běží. Jak ale zkusím spustit v dockeru ať už lokálně, nebo na GITu, tak se objeví tahle hláška:

Exited with error code 255 (expected 0)
   Error: Call to undefined function Tester\token_get_all()

   in src/Framework/Environment.php(197)
   in src/Framework/FileMutator.php(150) Tester\Environment::Tester\{closure}()
   in vendor/composer/ClassLoader.php(480) Tester\FileMutator->stream_open()
   in vendor/composer/ClassLoader.php(480) include()
   in vendor/composer/ClassLoader.php(346) Composer\Autoload\includeFile()
   in mockery/library/Mockery.php(229) Composer\Autoload\ClassLoader->loadClass()
   in mockery/library/Mockery.php(117) Mockery::getContainer()
   in App/FCRTest.php(142) Mockery::mock()
   in App/FCRTest.php(132) Tests\App\FCRTest->getContextMock()
   in App/FCRTest.php(57) Tests\App\FCRTest->getContextFactoryMock()
   in src/Framework/TestCase.php(158) Tests\App\FCRTest->sendArgs()
   in src/Framework/TestCase.php(242) Tester\TestCase->getData()
   in src/Framework/TestCase.php(96) Tester\TestCase->prepareTestData()
   in src/Framework/TestCase.php(59) Tester\TestCase->runTest()
   in App/FCRTest.php(157) Tester\TestCase->run()

Nějaké nápady, jak povolit, nebo něco udělat s Error: Call to undefined function Tester\token_get_all()?
Díky moc

David Matějka
Moderator | 6445
+
+1
-

Chybí ti php extension tokenizer

Polki
Člen | 553
+
0
-

Právě že nechybí. Toto jsou všechny extensiony, které mám povolené:

# php -m
[PHP Modules]
calendar
Core
ctype
date
dom
exif
FFI
fileinfo
filter
ftp
gd
gettext
hash
iconv
intl
json
libxml
openssl
pcntl
pcre
PDO
Phar
posix
readline
Reflection
session
shmop
SimpleXML
sockets
sodium
SPL
standard
sysvmsg
sysvsem
sysvshm
tokenizer
xml
xmlreader
xmlwriter
xsl
Zend OPcache
zlib

[Zend Modules]
Zend OPcache
Polki
Člen | 553
+
0
-

Hmm takže když spouštím testy takto:

# ./vendor/bin/tester ./Tests/ -c /etc/php/8.0/cli/

Tak mi to nebude fungovat, protože si ty extensiony není tester schopnej natáhnout sám?
A jestli to tak je, proč tedy lokálně na Winech s nainstalovaným WampServerem a spouštěním testů takto funguje?:

./vendor/bin/tester ./Tests/ -c D:\wamp64\bin\php\php8.0.6
David Matějka
Moderator | 6445
+
+1
-

muzes:

  • pouzit prepinac -C, aby se pouzival standardni php.ini config
  • pres -c nacist konfigurak
  • nastavit primo pres -d extension=tokenizer.so

je to proto, ze jednotlive buildy php jsou hodne odlisne v tom, co maji bundled a co jako extensions

Polki
Člen | 553
+
0
-

Pecka. Už to běží. Díky.