wiki.techinc.nl/tests/phpunit/suites/ParserTestFileSuite.php
Umherirrender e0949ceef0 Fix skipping of parser test suites
Parser tests using 'requirements' in the parser test file was running,
when there should be skipped.

Follow-Up: Ia12658554c94497a204b7f65f1a6f7b1fa0310ac
Change-Id: I12ff5b4f3a194a39b69a6773eb074ad58a8c9e00
2020-03-20 15:26:14 +01:00

37 lines
1 KiB
PHP

<?php
use PHPUnit\Framework\TestSuite;
/**
* This is the suite class for running tests within a single .txt source file.
* It is not invoked directly. Use --filter to select files, or
* use parserTests.php.
*/
class ParserTestFileSuite extends TestSuite {
use SuiteEventsTrait;
private $ptRunner;
private $ptFileName;
private $ptFileInfo;
public function __construct( $runner, $name, $fileName ) {
parent::__construct( $name );
$this->ptRunner = $runner;
$this->ptFileName = $fileName;
$this->ptFileInfo = TestFileReader::read( $this->ptFileName );
if ( !$this->ptRunner->meetsRequirements( $this->ptFileInfo['requirements'] ) ) {
$skipMessage = 'required extension not enabled';
} else {
$skipMessage = null;
}
foreach ( $this->ptFileInfo['tests'] as $test ) {
$this->addTest( new ParserIntegrationTest( $runner, $fileName, $test, $skipMessage ),
[ 'Database', 'Parser', 'ParserTests' ] );
}
}
public function setUp() : void {
$this->ptRunner->addArticles( $this->ptFileInfo[ 'articles'] );
}
}