After updating unit tests to be compatible with PHPUnit 6, arc unit command fails what leads to inability to create a differential revision.
Reproduction steps
- create new directory, init git and set up necessary files:
{ "require": { "phpunit/phpunit": "^6.0" } }
{ "unit.engine": "PhpunitTestEngine", "unit.phpunit.binary": "vendor/bin/phpunit" }
<?php use PHPUnit\Framework\TestCase; class DataTest extends TestCase { public function testAdd() { $this->assertEquals(4, 2 + 2); } }
- run composer install
- run arc unit dataTest.php --trace:
13:41 $ arc unit dataTest.php --trace ... >>> [0] <exec> $ which 'vendor/bin/phpunit' <<< [0] <exec> 2,203 us >>> [1] <exec> $ vendor/bin/phpunit -d display_errors=stderr --log-json '/tmp/801ns8shcgkc00k0/17490-AUKPdN' --coverage-clover '/tmp/47h5jepdu2as084s/17490-QK7yko' '/home/ali/arctest/dataTest.php' <<< [1] <exec> 37,234 us BROKEN /home/ali/arctest/dataTest.php
Test ^5 Unit test version
run the following commands:
rm -rf vendors rm composer.lock sed -i 's/6.0/5.0/g' composer.json composer install arc unit dataTest.php
13:45 $ arc unit dataTest.php PASS 2ms★ DataTest::testAdd
The issue
PHPUnit changelog for version 6.0 says:
* Removed the `--log-json` commandline option (deprecated in PHPUnit 5.7)
This command line option is used in standard PhpunitTestEngine:
https://github.com/phacility/arcanist/blob/9e82ef979e8148c43b9b8439025d505b1219e213/src/unit/engine/PhpunitTestEngine.php#L67
Arc version
arcanist 129d51fa0936c9bae48fadf3a3f39e26d69d24da (18 May 2017) libphutil a900d7b63e954e221efe140f0f33d3d701524aae (23 Apr 2017)