From: Kunal Mehta Date: Fri, 13 Apr 2018 02:52:05 +0000 (-0700) Subject: Add HamcrestPHPUnitIntegration trait X-Git-Tag: 1.31.0-rc.0~88^2 X-Git-Url: http://git.cyclocoop.org/data/%7BGarradin/WEBSITE%7D?a=commitdiff_plain;h=1a2ef3555903dcaab909cd9a5b8a3e60a319da94;p=lhc%2Fweb%2Fwiklou.git Add HamcrestPHPUnitIntegration trait Hamcrest has its own assertThat() function, which is used in PHPUnit tests. However, in PHPUnit 6, tests that don't have any assertions are marked as risky. To work around that, add a HamcrestPHPUnitIntegration trait that provides a $this->assertThatHamcrest() - it wraps around Hamcrest's assertThat(), and increments PHPUnit's assertion counter, so using it ensures that the test is not risky. Change-Id: Ia4a4ec226f64ebe90d1091ffd27420a356ca76ff --- diff --git a/tests/common/TestsAutoLoader.php b/tests/common/TestsAutoLoader.php index 56ee2df663..10e853b4fa 100644 --- a/tests/common/TestsAutoLoader.php +++ b/tests/common/TestsAutoLoader.php @@ -64,6 +64,7 @@ $wgAutoloadClasses += [ 'LessFileCompilationTest' => "$testDir/phpunit/LessFileCompilationTest.php", 'MediaWikiCoversValidator' => "$testDir/phpunit/MediaWikiCoversValidator.php", 'PHPUnit4And6Compat' => "$testDir/phpunit/PHPUnit4And6Compat.php", + 'HamcrestPHPUnitIntegration' => "$testDir/phpunit/HamcrestPHPUnitIntegration.php", # tests/phpunit/includes 'RevisionDbTestBase' => "$testDir/phpunit/includes/RevisionDbTestBase.php", diff --git a/tests/phpunit/HamcrestPHPUnitIntegration.php b/tests/phpunit/HamcrestPHPUnitIntegration.php new file mode 100644 index 0000000000..def08ff370 --- /dev/null +++ b/tests/phpunit/HamcrestPHPUnitIntegration.php @@ -0,0 +1,34 @@ + + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + */ + +/** + * @since 1.31 + */ +trait HamcrestPHPUnitIntegration { + + /** + * Wrapper around Hamcrest's assertThat, which marks the assertion + * for PHPUnit so the test is not marked as risky + */ + public function assertThatHamcrest( /* ... */ ) { + call_user_func_array( 'assertThat', func_get_args() ); + $this->addToAssertionCount( 1 ); + } +}