Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

- Implement skipping of test suites. Closes #58.

  • Loading branch information...
commit 8d5a790ee3ea32da816c02ac569496709a19cb4f 1 parent 91caadd
@sebastianbergmann authored
View
1  PHPUnit/Framework.php
@@ -61,6 +61,7 @@
require 'PHPUnit/Framework/ExpectationFailedException.php';
require 'PHPUnit/Framework/IncompleteTestError.php';
require 'PHPUnit/Framework/SkippedTestError.php';
+require 'PHPUnit/Framework/SkippedTestSuiteError.php';
require 'PHPUnit/Framework/TestCase.php';
require 'PHPUnit/Framework/TestSuite.php';
require 'PHPUnit/Framework/Warning.php';
View
72 PHPUnit/Framework/SkippedTestSuiteError.php
@@ -0,0 +1,72 @@
+<?php
+/**
+ * PHPUnit
+ *
+ * Copyright (c) 2002-2007, Sebastian Bergmann <sb@sebastian-bergmann.de>.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of Sebastian Bergmann nor the names of his
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRIC
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @category Testing
+ * @package PHPUnit
+ * @author Sebastian Bergmann <sb@sebastian-bergmann.de>
+ * @copyright 2002-2007 Sebastian Bergmann <sb@sebastian-bergmann.de>
+ * @license http://www.opensource.org/licenses/bsd-license.php BSD License
+ * @version SVN: $Id$
+ * @link http://www.phpunit.de/
+ * @since File available since Release 3.1.0
+ */
+
+require_once 'PHPUnit/Framework.php';
+require_once 'PHPUnit/Util/Filter.php';
+
+PHPUnit_Util_Filter::addFileToFilter(__FILE__, 'PHPUNIT');
+
+if (!class_exists('PHPUnit_Framework_SkippedTestSuiteError', FALSE)) {
+
+/**
+ * Extension to PHPUnit_Framework_AssertionFailedError to mark the special
+ * case of a skipped test suite.
+ *
+ * @category Testing
+ * @package PHPUnit
+ * @author Sebastian Bergmann <sb@sebastian-bergmann.de>
+ * @copyright 2002-2007 Sebastian Bergmann <sb@sebastian-bergmann.de>
+ * @license http://www.opensource.org/licenses/bsd-license.php BSD License
+ * @version Release: @package_version@
+ * @link http://www.phpunit.de/
+ * @since Class available since Release 3.1.0
+ */
+class PHPUnit_Framework_SkippedTestSuiteError extends PHPUnit_Framework_AssertionFailedError implements PHPUnit_Framework_SkippedTest
+{
+}
+
+}
+?>
View
26 PHPUnit/Framework/TestSuite.php
@@ -475,8 +475,17 @@ public function run(PHPUnit_Framework_TestResult $result = NULL, $filter = FALSE
$result = $this->createResult();
}
+ try {
+ $this->setUp();
+ }
+
+ catch (PHPUnit_Framework_SkippedTestSuiteError $e) {
+ $result->addFailure($this, $e, 0);
+
+ return $result;
+ }
+
$result->startTestSuite($this);
- $this->setUp();
foreach ($this->tests as $test) {
if ($result->shouldStop()) {
@@ -507,8 +516,8 @@ public function run(PHPUnit_Framework_TestResult $result = NULL, $filter = FALSE
}
}
- $this->tearDown();
$result->endTestSuite($this);
+ $this->tearDown();
return $result;
}
@@ -575,6 +584,19 @@ public function tests()
}
/**
+ * Mark the test suite as skipped.
+ *
+ * @param string $message
+ * @throws PHPUnit_Framework_SkippedTestSuiteError
+ * @access public
+ * @since Method available since Release 3.0.0
+ */
+ public function markTestSuiteSkipped($message = '')
+ {
+ throw new PHPUnit_Framework_SkippedTestSuiteError($message);
+ }
+
+ /**
* @param ReflectionMethod $method
* @param array $names
* @param ReflectionClass $theClass
View
3  package.xml
@@ -250,6 +250,9 @@
<file baseinstalldir="/" name="SkippedTestError.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
+ <file baseinstalldir="/" name="SkippedTestSuiteError.php" role="php">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
<file baseinstalldir="/" name="Test.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
Please sign in to comment.
Something went wrong with that request. Please try again.