How to use testClass method of runner class

Best Atoum code snippet using runner.testClass

PHPUnitRunnerTest.php

Source:PHPUnitRunnerTest.php Github

copy

Full Screen

...113 {114 $testTargetRepository = $this->createTestTargetRepository();115 $testTargetRepository->setMethods(array($testMethod));116 preg_match('/^(.*?)::(.*)/', $testMethod, $matches);117 $testClass = $matches[1];118 $testMethod = $matches[2];119 $collector = $this->createCollector();120 $collector->collectTestCase($testClass);121 $runner = $this->createRunner(); /* @var $runner \Stagehand\TestRunner\Runner\PHPUnitRunner */122 $runner->setDetailedProgress(true);123 $this->runTests();124 $this->assertRegExp('/^ ' . $testMethod . ' ... .+\s\(.+\)/m', $this->output);125 $this->assertRegExp('/^ \[ \] .+\s\(.+\)$/m', $this->output);126 }127 /**128 * @since Method available since Release 2.11.0129 */130 public function provideFullyQualifiedMethodNamesForIncompleteAndSkippedTests()131 {132 return array(133 array('Stagehand_TestRunner_PHPUnitIncompleteTest::isIncomplete'),134 array('Stagehand_TestRunner_PHPUnitSkippedTest::isSkipped')135 );136 }137 /**138 * @param string $testMethod139 * @test140 * @dataProvider provideFullyQualifiedMethodNamesForIncompleteAndSkippedTestsWithoutMessage141 * @since Method available since Release 2.11.0142 */143 public function printsNormalOutputForIncompleteAndSkippedTestsIfTheMessageIsNotSpecified($testMethod)144 {145 $testTargetRepository = $this->createTestTargetRepository();146 $testTargetRepository->setMethods(array($testMethod));147 preg_match('/^(.*?)::(.*)/', $testMethod, $matches);148 $testClass = $matches[1];149 $testMethod = $matches[2];150 $collector = $this->createCollector();151 $collector->collectTestCase($testClass);152 $runner = $this->createRunner(); /* @var $runner \Stagehand\TestRunner\Runner\PHPUnitRunner */153 $runner->setDetailedProgress(true);154 $this->runTests();155 $this->assertRegExp('/^ ' . $testMethod . ' ... [^()]+$/m', $this->output);156 $this->assertRegExp('/^ \[ \] [^()]+$/m', $this->output);157 }158 /**159 * @return array160 * @since Method available since Release 2.11.0161 */162 public function provideFullyQualifiedMethodNamesForIncompleteAndSkippedTestsWithoutMessage()163 {164 return array(165 array('Stagehand_TestRunner_PHPUnitIncompleteTest::isIncompleteWithoutMessage'),166 array('Stagehand_TestRunner_PHPUnitSkippedTest::isSkippedWithoutMessage')167 );168 }169 /**170 * @since Method available since Release 2.16.0171 */172 public function dataForStopOnFailure()173 {174 $firstTestClass1 = 'Stagehand_TestRunner_PHPUnitFailureAndPassTest';175 $firstTestClass2 = 'Stagehand_TestRunner_PHPUnitErrorAndPassTest';176 $secondTestClass1 = 'Stagehand_TestRunner_PHPUnitPassTest';177 $secondTestClass2 = $secondTestClass1;178 $failingTestMethod1 = 'isFailure';179 $failingTestMethod2 = 'isError';180 return array(181 array($firstTestClass1, $secondTestClass1, $failingTestMethod1),182 array($firstTestClass2, $secondTestClass2, $failingTestMethod2),183 );184 }185 /**186 * @param string $firstTestClass187 * @param string $secondTestClass188 * @test189 * @dataProvider provideDataForNotStopTheTestRunWhenATestCaseIsSkipped190 * @since Method available since Release 2.11.0191 */192 public function notStopTheTestRunWhenATestCaseIsSkipped($firstTestClass, $secondTestClass)193 {194 $collector = $this->createCollector();195 $collector->collectTestCase($firstTestClass);196 $collector->collectTestCase($secondTestClass);197 $runner = $this->createRunner();198 $runner->setStopOnFailure(true);199 $this->runTests();200 $this->assertTestCaseCount(5);201 }202 /**203 * @return array204 * @since Method available since Release 2.16.0205 */206 public function provideDataForNotStopTheTestRunWhenATestCaseIsSkipped()207 {208 return array(209 array('Stagehand_TestRunner_PHPUnitSkippedTest', 'Stagehand_TestRunner_PHPUnitPassTest'),210 );211 }212 /**213 * @param string $firstTestClass214 * @param string $secondTestClass215 * @test216 * @dataProvider provideDataForNotStopTheTestRunWhenATestCaseIsIncomplete217 * @since Method available since Release 2.11.0218 */219 public function notStopTheTestRunWhenATestCaseIsIncomplete($firstTestClass, $secondTestClass)220 {221 $collector = $this->createCollector();222 $collector->collectTestCase($firstTestClass);223 $collector->collectTestCase($secondTestClass);224 $runner = $this->createRunner();225 $runner->setStopOnFailure(true);226 $this->runTests();227 $this->assertTestCaseCount(5);228 }229 /**230 * @return array231 * @since Method available since Release 2.16.0232 */233 public function provideDataForNotStopTheTestRunWhenATestCaseIsIncomplete()234 {235 return array(236 array('Stagehand_TestRunner_PHPUnitIncompleteTest', 'Stagehand_TestRunner_PHPUnitPassTest'),237 );238 }239 /**240 * @param $testClass241 * @param $testDoxClass242 * @test243 * @dataProvider provideDataForNotBreakTestDoxOutputIfTheSameTestMethodNamesExceptTrailingNumbers244 * @since Method available since Release 2.11.2245 */246 public function notBreakTestDoxOutputIfTheSameTestMethodNamesExceptTrailingNumbers($testClass, $testDoxClass)247 {248 $testTargetRepository = $this->createTestTargetRepository();249 $testTargetRepository->setClasses(array($testClass));250 $collector = $this->createCollector();251 $collector->collectTestCase($testClass);252 $this->runTests();253 $this->assertRegExp('/^' . $testDoxClass . '\n \[x\] Pass 1\n \[x\] Pass 2$/m', $this->output, $this->output);254 }255 /**256 * @return array257 * @since Method available since Release 2.16.0258 */259 public function provideDataForNotBreakTestDoxOutputIfTheSameTestMethodNamesExceptTrailingNumbers()260 {261 return array(262 array('Stagehand_TestRunner_PHPUnitMultipleClasses1Test', 'Stagehand_TestRunner_PHPUnitMultipleClasses1'),263 );264 }265 public function dataForNotify()266 {267 return array(268 array('Stagehand_TestRunner_PHPUnitPassTest', static::$RESULT_PASSED, static::$COLORS, 'OK (3 tests, 4 assertions)'),269 array('Stagehand_TestRunner_PHPUnitPassTest', static::$RESULT_PASSED, static::$NOT_COLOR, 'OK (3 tests, 4 assertions)'),270 array('Stagehand_TestRunner_PHPUnitFailureTest', static::$RESULT_NOT_PASSED, static::$COLORS, 'FAILURES! Tests: 1, Assertions: 1, Failures: 1.'),271 array('Stagehand_TestRunner_PHPUnitFailureTest', static::$RESULT_NOT_PASSED, static::$NOT_COLOR, 'FAILURES! Tests: 1, Assertions: 1, Failures: 1.'),272 array('Stagehand_TestRunner_PHPUnitIncompleteTest', static::$RESULT_NOT_PASSED, static::$COLORS,273 version_compare(\PHPUnit_Runner_Version::id(), '4.0.0', '>=') ? 'OK, but incomplete, skipped, or risky tests! Tests: 2, Assertions: 0, Incomplete: 2.' : 'OK, but incomplete or skipped tests! Tests: 2, Assertions: 0, Incomplete: 2.'274 ),275 array('Stagehand_TestRunner_PHPUnitIncompleteTest', static::$RESULT_NOT_PASSED, static::$NOT_COLOR,276 version_compare(\PHPUnit_Runner_Version::id(), '4.0.0', '>=') ? 'OK, but incomplete, skipped, or risky tests! Tests: 2, Assertions: 0, Incomplete: 2.' : 'OK, but incomplete or skipped tests! Tests: 2, Assertions: 0, Incomplete: 2.'277 ),278 );279 }280 /**281 * @param string $testClass282 * @test283 * @dataProvider provideDataForConfiguresPhpUnitRuntimeEnvironmentByTheXmlConfigurationFile284 * @link http://redmine.piece-framework.com/issues/202285 * @since Method available since Release 2.14.0286 */287 public function configuresPhpUnitRuntimeEnvironmentByTheXmlConfigurationFile($testClass)288 {289 $marker = 'STAGEHAND_TESTRUNNER_RUNNER_' . strtoupper($this->getPluginID()) . 'RUNNERTEST_bootstrapLoaded';290 $reflectionClass = new \ReflectionClass($this);291 $configDirectory = dirname($reflectionClass->getFileName()) . DIRECTORY_SEPARATOR . basename($reflectionClass->getFileName(), '.php');292 $oldWorkingDirectory = getcwd();293 chdir($configDirectory);294 $logFile = $configDirectory . DIRECTORY_SEPARATOR . 'logfile.tap';295 $oldIncludePath = set_include_path($configDirectory . PATH_SEPARATOR . get_include_path());296 $this->applicationContext->getComponentFactory()->getContainer()->setParameter('phpunit.phpunit_config_file', $configDirectory . DIRECTORY_SEPARATOR . 'phpunit.xml');297 $preparer = $this->createPreparer(); /* @var $preparer \Stagehand\TestRunner\Preparer\PHPUnitPreparer */298 $runner = $this->createRunner(); /* @var $runner \Stagehand\TestRunner\Runner\PHPUnitRunner */299 $e = null;300 try {301 $collector = $this->createCollector();302 $collector->collectTestCase($testClass);303 $this->runTests();304 $this->assertTrue($GLOBALS[$marker]);305 $this->assertFileExists($logFile);306 $expectedLog = 'TAP version 13' . PHP_EOL .307'ok 1 - ' . $testClass . '::passWithAnAssertion' . PHP_EOL .308'ok 2 - ' . $testClass . '::passWithMultipleAssertions' . PHP_EOL .309'ok 3 - ' . $testClass . '::日本語を使用できる' . PHP_EOL .310'1..3' . PHP_EOL;311 $actualLog = file_get_contents($logFile);312 $this->assertEquals($expectedLog, $actualLog, $actualLog);313 } catch (\Exception $e) {314 }315 unlink($logFile);316 set_include_path($oldIncludePath);317 chdir($oldWorkingDirectory);318 if (!is_null($e)) {319 throw $e;320 }321 }322 /**323 * @retuan array324 * @since Method available since Release 2.16.0325 */326 public function provideDataForConfiguresPhpUnitRuntimeEnvironmentByTheXmlConfigurationFile()327 {328 return array(329 array('Stagehand_TestRunner_PHPUnitPassTest'),330 );331 }332 /**333 * @since Method available since Release 2.16.0334 */335 public function dataForMultipleFailures()336 {337 return array(338 array('Stagehand_TestRunner_PHPUnitMultipleFailuresTest', 'isFailure'),339 );340 }341 /**342 * @param string $testClass343 * @param array $testMethods344 * @param string $xmlConfigurationFile345 * @test346 * @dataProvider provideDataForGroupsTest347 * @link http://redmine.piece-framework.com/issues/288348 * @since Method available since Release 2.17.0349 */350 public function notCountTheExcludedTestsByTheGroupsElementAsTheDivisorOfATestRun($testClass, array $testMethods, $xmlConfigurationFile)351 {352 $reflectionClass = new \ReflectionClass($this);353 $configDirectory = dirname($reflectionClass->getFileName()) . DIRECTORY_SEPARATOR . basename($reflectionClass->getFileName(), '.php');354 $phpunitConfigurationFactory = $this->createComponent('phpunit.phpunit_configuration_factory');355 $phpunitConfigurationFactoryClass = new \ReflectionClass($phpunitConfigurationFactory);356 $phpunitConfigurationFileProperty = $phpunitConfigurationFactoryClass->getProperty('phpunitConfigurationFile');357 $phpunitConfigurationFileProperty->setAccessible(true);358 $phpunitConfigurationFileProperty->setValue($phpunitConfigurationFactory, $configDirectory . DIRECTORY_SEPARATOR . $xmlConfigurationFile);359 $phpunitConfigurationFileProperty->setAccessible(false);360 $preparer = $this->createPreparer();361 $preparerClass = new \ReflectionClass($preparer);362 $phpunitConfigurationFactoryProperty = $preparerClass->getProperty('phpunitConfigurationFactory');363 $phpunitConfigurationFactoryProperty->setAccessible(true);364 $phpunitConfigurationFactoryProperty->setValue($preparer, $phpunitConfigurationFactory);365 $phpunitConfigurationFactoryProperty->setAccessible(false);366 $this->createRunner()->setJUnitXMLRealtime(true);367 $collector = $this->createCollector();368 $collector->collectTestCase($testClass);369 $this->runTests();370 $this->assertTestCaseCount(count($testMethods));371 foreach ($testMethods as $testMethod) {372 $this->assertTestCaseExists($testMethod, $testClass);373 }374 $this->assertCollectedTestCaseCount(count($testMethods));375 }376 /**377 * @return array378 * @since Method available since Release 2.17.0379 */380 public function provideDataForGroupsTest()381 {382 return array(383 array($this->groupsTest(), array('a'), 'groups_include.xml'),384 array($this->groupsTest(), array('b', 'c'), 'groups_exclude.xml'),385 array($this->groupsTest(), array(), 'groups_include_exclude.xml'),386 );387 }388 /**389 * @test390 * @link http://piece-framework.com/issues/418391 * @since Method available since Release 3.2.0392 */393 public function printsOutputFromATestCaseOnceWhenTheDetailedProgressOptionIsSpecified()394 {395 $testClass = 'Stagehand\TestRunner\PHPUnitOutputTest';396 $testMethod = 'outputs';397 $collector = $this->createCollector();398 $collector->collectTestCase($testClass);399 $runner = $this->createRunner(); /* @var $runner \Stagehand\TestRunner\Runner\PHPUnitRunner */400 $runner->setDetailedProgress(true);401 $this->runTests();402 $marker = $testClass . '::' . $testMethod;403 $this->assertThat(substr_count($this->output, $marker), $this->equalTo(1));404 }405 /**406 * @test407 * @link http://piece-framework.com/issues/418408 * @since Method available since Release 3.2.0409 */410 public function printsOutputFromATestCaseOnceWhenTheNoAnsiOptionIsSpecified()411 {412 $testClass = 'Stagehand\TestRunner\PHPUnitOutputTest';413 $testMethod = 'outputs';414 $collector = $this->createCollector();415 $collector->collectTestCase($testClass);416 $terminal = $this->createTerminal();417 $terminal->setColor(false);418 $this->runTests();419 $marker = $testClass . '::' . $testMethod;420 $this->assertThat(substr_count($this->output, $marker), $this->equalTo(1));421 }422 /**423 * @return string424 * @since Method available since Release 2.17.0425 */426 protected function groupsTest()427 {428 return 'Stagehand_TestRunner_PHPUnitGroupsTest';429 }430 /**431 * @param string $testClass432 * @param \Closure $filter433 * @link http://piece-framework.com/issues/424434 * @since Method available since Release 3.2.0435 *436 * @test437 * @dataProvider provideDataForNoTestsTest438 */439 public function keepsTheWarningForATestSuite($testClass, \Closure $filter = null)440 {441 if (!is_null($filter)) {442 $filter($this->createTestTargetRepository());443 }444 $collector = $this->createCollector();445 $collector->collectTestCase($testClass);446 $this->runTests();447 $this->assertTestCaseCount(1);448 $failures = $this->createXPath()->query(sprintf('//testsuite[@name="%s"]/testcase[@name="%s"]/failure', $testClass, 'Warning'));449 $this->assertEquals(1, $failures->length);450 }451 /**452 * @return array453 * @link http://piece-framework.com/issues/424454 * @since Method available since Release 3.2.0455 */456 public function provideDataForNoTestsTest()457 {458 return array(459 array('Stagehand_TestRunner_PHPUnitNoTestsTest'),460 array('Stagehand_TestRunner_PHPUnitNoTestsTest', function (TestTargetRepository $testTargetRepository) { $testTargetRepository->setClasses(array('Stagehand_TestRunner_PHPUnitNoTestsTest')); }),461 array('Stagehand_TestRunner_PHPUnitNoTestsTest', function (TestTargetRepository $testTargetRepository) { $testTargetRepository->setMethods(array('Stagehand_TestRunner_PHPUnitNoTestsTest::nonExistingMethod')); }),462 );463 }464 /**465 * @param string $firstTestClass466 * @param string $secondTestClass467 * @param string $specyfyingTestMethod468 * @param string $runningTestMethod469 * @since Method available since Release 3.3.0470 *471 * @test472 * @dataProvider dataForTestMethods473 */474 public function runsOnlyTheSpecifiedMethodsWithTheGroups($firstTestClass, $secondTestClass, $specyfyingTestMethod, $runningTestMethod)475 {476 $reflectionClass = new \ReflectionClass($this);477 $configDirectory = dirname($reflectionClass->getFileName()) . '/' . basename($reflectionClass->getFileName(), '.php');478 $this->applicationContext->getComponentFactory()->getContainer()->setParameter('phpunit.phpunit_config_file', $configDirectory . '/' . 'groups_include.xml');479 $testTargetRepository = $this->createTestTargetRepository();480 $testTargetRepository->setMethods(array($firstTestClass . '::' . $specyfyingTestMethod));481 $collector = $this->createCollector();482 $collector->collectTestCase($firstTestClass);483 $collector->collectTestCase($secondTestClass);484 $this->runTests();485 $this->assertTestCaseCount(1);486 $this->assertTestCaseExists($this->getTestMethodName($runningTestMethod), $firstTestClass);487 }488 /**489 * @param string $firstTestClass490 * @param string $secondTestClass491 * @param string $specifyingTestClass492 * @param string $runningTestMethod1493 * @param string $runningTestMethod2494 * @since Method available since Release 3.3.0495 *496 * @test497 * @dataProvider dataForTestClasses498 */499 public function runsOnlyTheSpecifiedClassesWithTheGroups($firstTestClass, $secondTestClass, $specifyingTestClass, $runningTestMethod1, $runningTestMethod2)500 {501 $reflectionClass = new \ReflectionClass($this);502 $configDirectory = dirname($reflectionClass->getFileName()) . '/' . basename($reflectionClass->getFileName(), '.php');503 $this->applicationContext->getComponentFactory()->getContainer()->setParameter('phpunit.phpunit_config_file', $configDirectory . '/' . 'groups_include.xml');504 $testTargetRepository = $this->createTestTargetRepository();505 $testTargetRepository->setClasses(array($firstTestClass));506 $collector = $this->createCollector();507 $collector->collectTestCase($firstTestClass);508 $collector->collectTestCase($secondTestClass);509 $this->runTests();510 $this->assertTestCaseCount(2);511 $this->assertTestCaseExists($this->getTestMethodName('pass1'), $firstTestClass);512 $this->assertTestCaseExists($this->getTestMethodName('pass2'), $firstTestClass);513 }514 /**515 * @return array516 * @since Method available since Release 3.5.0517 */518 public function provideSelectionPatternsForNonExistingDataProviderMethod()519 {520 $testClass = 'Stagehand\TestRunner\PHPUnit\NonExistingDataProviderTest';521 return array(522 array($testClass, self::SELECTION_MODE_NONE),523 array($testClass, self::SELECTION_MODE_CLASS),524 array($testClass, self::SELECTION_MODE_METHOD),525 );526 }527 /**528 * @param string $testClass529 * @param string $selectionMode530 * @since Method available since Release 3.5.0531 * @link https://github.com/piece/stagehand-testrunner/issues/21532 *533 * @test534 * @dataProvider provideSelectionPatternsForNonExistingDataProviderMethod535 */536 public function runsAMethodWithANonExistingDataProviderMethod($testClass, $selectionMode)537 {538 if ($selectionMode == self::SELECTION_MODE_METHOD) {539 $this->createTestTargetRepository()->setMethods(array($testClass . '::failsWithWarning'));540 } elseif ($selectionMode == self::SELECTION_MODE_CLASS) {541 $this->createTestTargetRepository()->setClasses(array($testClass));542 }543 $this->createCollector()->collectTestCase($testClass);544 $this->runTests();545 $failures = $this->createXPath()->query(sprintf("//testsuite[@name='%s']/testsuite[@name='failsWithWarning']/testcase[@name='Warning']/failure", $testClass));546 $this->assertThat($failures->length, $this->equalTo(1));547 }548}549/*550 * Local Variables:551 * mode: php552 * coding: utf-8553 * tab-width: 4554 * c-basic-offset: 4555 * c-hanging-comment-ender-p: nil556 * indent-tabs-mode: nil557 * End:558 */...

Full Screen

Full Screen

testClass

Using AI Code Generation

copy

Full Screen

1require_once('runner.php');2$test = new testClass();3$test->testMethod();4require_once('runner.php');5$test = new testClass();6$test->testMethod();7class testClass {8 function testMethod() {9 echo "test method";10 }11}12Related Posts: PHP include() vs require() vs include_once() vs require_once()13PHP include() vs require() vs include_once() vs require_once() PHP include_once() and require_once()14PHP include_once() and require_once() PHP include() and require()15PHP include() and require() PHP include() and require() vs require_once() and include_once()16PHP include() and require() vs require_once() and include_once() PHP include() vs include_once() vs require() vs require_once()17PHP include() vs include_once() vs require() vs require_once() PHP include() vs include_once()

Full Screen

Full Screen

testClass

Using AI Code Generation

copy

Full Screen

1require_once('runner.php');2$test = new testClass();3$test->runner();4{5 public function runner()6 {7 echo "This is test class runner method";8 }9}10require('runner.php');

Full Screen

Full Screen

Automation Testing Tutorials

Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Run Atoum automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Most used method in runner

Trigger testClass code on LambdaTest Cloud Grid

Execute automation tests with testClass on a cloud-based Grid of 3000+ real browsers and operating systems for both web and mobile applications.

Test now for Free

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful