11
11
<h1>PHPUnit Manual</h1>
14
<li><a href="index.html" class="active">PHPUnit 3.4 <span><small>English</small></span></a></li><li><a href="http://www.phpunit.de/manual/3.3/en/index.html">PHPUnit 3.3 <span><small>English</small></span></a></li><li><a href="http://www.phpunit.de/manual/3.4/ja/index.html">PHPUnit 3.4 <span><small>Japanese</small></span></a></li><li><a href="http://www.phpunit.de/manual/3.3/ja/index.html">PHPUnit 3.3 <span><small>Japanese</small></span></a></li>
14
<li><a href="index.html" class="active">PHPUnit 3.5 <span><small>English</small></span></a></li><li><a href="http://www.phpunit.de/manual/3.4/en/index.html">PHPUnit 3.4 <span><small>English</small></span></a></li><li><a href="http://www.phpunit.de/manual/3.5/ja/index.html">PHPUnit 3.5 <span><small>Japanese</small></span></a></li><li><a href="http://www.phpunit.de/manual/3.4/ja/index.html">PHPUnit 3.4 <span><small>Japanese</small></span></a></li>
17
17
<div class="colmask leftmenu">
36
36
processIsolation="true"
37
37
stopOnFailure="true"
38
38
syntaxCheck="false"
39
testSuiteLoaderClass="PHPUnit_Runner_StandardTestSuiteLoader">
39
testSuiteLoaderClass="PHPUnit_Runner_StandardTestSuiteLoader"
41
43
</phpunit></pre><p>
42
44
The XML configuration above corresponds to invoking the TextUI test runner
43
45
with the following switches:
44
</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p><code class="literal">--no-globals-backup</code></p></li><li class="listitem"><p><code class="literal">--static-backup</code></p></li><li class="listitem"><p><code class="literal">--bootstrap /path/to/bootstrap.php</code></p></li><li class="listitem"><p><code class="literal">--colors</code></p></li><li class="listitem"><p><code class="literal">--process-isolation</code></p></li><li class="listitem"><p><code class="literal">--stop-on-failure</code></p></li><li class="listitem"><p><code class="literal">--no-syntax-check</code></p></li><li class="listitem"><p><code class="literal">--loader PHPUnit_Runner_StandardTestSuiteLoader</code></p></li></ul></div><p>
46
</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p><code class="literal">--no-globals-backup</code></p></li><li class="listitem"><p><code class="literal">--static-backup</code></p></li><li class="listitem"><p><code class="literal">--bootstrap /path/to/bootstrap.php</code></p></li><li class="listitem"><p><code class="literal">--colors</code></p></li><li class="listitem"><p><code class="literal">--process-isolation</code></p></li><li class="listitem"><p><code class="literal">--stop-on-failure</code></p></li><li class="listitem"><p><code class="literal">--no-syntax-check</code></p></li><li class="listitem"><p><code class="literal">--loader PHPUnit_Runner_StandardTestSuiteLoader</code></p></li><li class="listitem"><p><code class="literal">--verbose</code></p></li><li class="listitem"><p><code class="literal">--strict</code></p></li></ul></div><p>
45
47
The <code class="literal">convertErrorsToExceptions</code>,
46
48
<code class="literal">convertNoticesToExceptions</code>, and
47
49
<code class="literal">convertWarningsToExceptions</code> attributes have no
48
50
equivalent TextUI test runner switch.
49
51
</p></div><div class="section" title="Test Suites"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="appendixes.configuration.testsuites"></a>Test Suites</h2></div></div></div><p>
50
<a id="id2599895" class="indexterm"></a>
52
<a id="id2603704" class="indexterm"></a>
52
54
The <code class="literal"><testsuites></code> element and its
53
55
one or more <code class="literal"><testsuite></code> children can be
58
60
<file>/path/to/MyTest.php</file>
60
62
</testsuites></pre></div><div class="section" title="Groups"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="appendixes.configuration.groups"></a>Groups</h2></div></div></div><p>
61
<a id="id2599937" class="indexterm"></a>
63
<a id="id2603746" class="indexterm"></a>
63
65
The <code class="literal"><groups></code> element and its
64
66
<code class="literal"><include></code>,
76
78
The XML configuration above corresponds to invoking the TextUI test runner
77
79
with the following switches:
78
80
</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p><code class="literal">--group name</code></p></li><li class="listitem"><p><code class="literal">--exclude-group name</code></p></li></ul></div></div><div class="section" title="Including and Excluding Files for Code Coverage"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="appendixes.configuration.blacklist-whitelist"></a>Including and Excluding Files for Code Coverage</h2></div></div></div><p>
79
<a id="id2600016" class="indexterm"></a>
80
<a id="id2600023" class="indexterm"></a>
81
<a id="id2600030" class="indexterm"></a>
82
<a id="id2600036" class="indexterm"></a>
81
<a id="id2603825" class="indexterm"></a>
82
<a id="id2603832" class="indexterm"></a>
83
<a id="id2603839" class="indexterm"></a>
84
<a id="id2603846" class="indexterm"></a>
84
86
The <code class="literal"><filter></code> element and its children can
85
87
be used to configure the blacklist and whitelist for the code coverage
103
105
</whitelist>
104
106
</filter></pre><p>
105
107
The XML configuration above corresponds to using the
106
<code class="literal">PHPUnit_Util_Filter</code> class as follows:
107
</p><pre class="screen">PHPUnit_Util_Filter::addDirectoryToFilter(
108
'/path/to/files', '.php'
111
PHPUnit_Util_Filter::addFileToFilter('/path/to/file');
113
PHPUnit_Util_Filter::removeDirectoryFromFilter(
114
'/path/to/files', '.php'
117
PHPUnit_Util_Filter::removeFileFromFilter('/path/to/file');
119
PHPUnit_Util_Filter::addDirectoryToWhitelist(
120
'/path/to/files', '.php'
123
PHPUnit_Util_Filter::addFileToWhitelist('/path/to/file');
125
PHPUnit_Util_Filter::removeDirectoryFromWhitelist(
126
'/path/to/files', '.php'
129
PHPUnit_Util_Filter::removeFileFromWhitelist('/path/to/file');</pre></div><div class="section" title="Logging"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="appendixes.configuration.logging"></a>Logging</h2></div></div></div><p>
130
<a id="id2600101" class="indexterm"></a>
108
<code class="literal">PHP_CodeCoverage_Filter</code> class as follows:
109
</p><pre class="screen">PHP_CodeCoverage_Filter::getInstance()->addDirectoryToBlacklist(
110
'/path/to/files', '.php'
113
PHP_CodeCoverage_Filter::getInstance()->addFileToBlacklist('/path/to/file');
115
PHP_CodeCoverage_Filter::getInstance()->removeDirectoryFromBlacklist(
116
'/path/to/files', '.php'
119
PHP_CodeCoverage_Filter::getInstance()->removeFileFromBlacklist('/path/to/file');
121
PHP_CodeCoverage_Filter::getInstance()->addDirectoryToWhitelist(
122
'/path/to/files', '.php'
125
PHP_CodeCoverage_Filter::getInstance()->addFileToWhitelist('/path/to/file');
127
PHP_CodeCoverage_Filter::getInstance()->removeDirectoryFromWhitelist(
128
'/path/to/files', '.php'
131
PHP_CodeCoverage_Filter::getInstance()->removeFileFromWhitelist('/path/to/file');</pre></div><div class="section" title="Logging"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="appendixes.configuration.logging"></a>Logging</h2></div></div></div><p>
132
<a id="id2603913" class="indexterm"></a>
132
134
The <code class="literal"><logging></code> element and its
133
135
<code class="literal"><log></code> children can be used to configure the
151
153
<code class="literal">highLowerBound</code>, and <code class="literal">logIncompleteSkipped</code>
152
154
attributes have no equivalent TextUI test runner switch.
153
155
</p></div><div class="section" title="Test Listeners"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="appendixes.configuration.test-listeners"></a>Test Listeners</h2></div></div></div><p>
154
<a id="id2600264" class="indexterm"></a>
155
<a id="id2600271" class="indexterm"></a>
156
<a id="id2604076" class="indexterm"></a>
157
<a id="id2604083" class="indexterm"></a>
157
159
The <code class="literal"><listeners></code> element and its
158
160
<code class="literal"><listener></code> children can be used to attach
185
187
);</pre></div><div class="section" title="Setting PHP INI settings, Constants and Global Variables"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="appendixes.configuration.php-ini-constants-variables"></a>Setting PHP INI settings, Constants and Global Variables</h2></div></div></div><p>
186
<a id="id2600334" class="indexterm"></a>
187
<a id="id2600341" class="indexterm"></a>
188
<a id="id2600348" class="indexterm"></a>
188
<a id="id2604147" class="indexterm"></a>
189
<a id="id2604153" class="indexterm"></a>
190
<a id="id2604160" class="indexterm"></a>
190
192
The <code class="literal"><php></code> element and its children can be
191
used to configure PHP settings, constants, and global variables.
193
used to configure PHP settings, constants, and global variables. It can
194
also be used to prepend the <code class="literal">include_path</code>.
192
195
</p><pre class="screen"><php>
196
<includePath>.</includePath>
193
197
<ini name="foo" value="bar"/>
194
198
<const name="foo" value="bar"/>
195
199
<var name="foo" value="bar"/>
200
<env name="foo" value="bar"/>
201
<post name="foo" value="bar"/>
202
<get name="foo" value="bar"/>
203
<cookie name="foo" value="bar"/>
204
<server name="foo" value="bar"/>
205
<files name="foo" value="bar"/>
206
<request name="foo" value="bar"/>
196
207
</php></pre><p>
197
208
The XML configuration above corresponds to the following PHP code:
198
209
</p><pre class="screen">ini_set('foo', 'bar');
199
declare('foo', 'bar');
200
$GLOBALS['foo'] = 'bar';</pre></div><div class="section" title="Configuring Browsers for Selenium RC"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="appendixes.configuration.selenium-rc"></a>Configuring Browsers for Selenium RC</h2></div></div></div><p>
201
<a id="id2600396" class="indexterm"></a>
210
define('foo', 'bar');
211
$GLOBALS['foo'] = 'bar';
212
$_ENV['foo'] = 'bar';
213
$_POST['foo'] = 'bar';
214
$_GET['foo'] = 'bar';
215
$_COOKIE['foo'] = 'bar';
216
$_SERVER['foo'] = 'bar';
217
$_FILES['foo'] = 'bar';
218
$_REQUEST['foo'] = 'bar';</pre></div><div class="section" title="Configuring Browsers for Selenium RC"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="appendixes.configuration.selenium-rc"></a>Configuring Browsers for Selenium RC</h2></div></div></div><p>
219
<a id="id2604222" class="indexterm"></a>
203
221
The <code class="literal"><selenium></code> element and its
204
222
<code class="literal"><browser></code> children can be used to
235
253
<div class="col2">
236
<dl><dt><span class="chapter"><a href="automating-tests.html">1. Automating Tests</a></span></dt><dt><span class="chapter"><a href="goals.html">2. PHPUnit's Goals</a></span></dt><dt><span class="chapter"><a href="installation.html">3. Installing PHPUnit</a></span></dt><dt><span class="chapter"><a href="writing-tests-for-phpunit.html">4. Writing Tests for PHPUnit</a></span></dt><dd><dl><dt><span class="section"><a href="writing-tests-for-phpunit.html#writing-tests-for-phpunit.test-dependencies">Test Dependencies</a></span></dt><dt><span class="section"><a href="writing-tests-for-phpunit.html#writing-tests-for-phpunit.data-providers">Data Providers</a></span></dt><dt><span class="section"><a href="writing-tests-for-phpunit.html#writing-tests-for-phpunit.exceptions">Testing Exceptions</a></span></dt><dt><span class="section"><a href="writing-tests-for-phpunit.html#writing-tests-for-phpunit.errors">Testing PHP Errors</a></span></dt></dl></dd><dt><span class="chapter"><a href="textui.html">5. The Command-Line Test Runner</a></span></dt><dt><span class="chapter"><a href="fixtures.html">6. Fixtures</a></span></dt><dd><dl><dt><span class="section"><a href="fixtures.html#fixtures.more-setup-than-teardown">More setUp() than tearDown()</a></span></dt><dt><span class="section"><a href="fixtures.html#fixtures.variations">Variations</a></span></dt><dt><span class="section"><a href="fixtures.html#fixtures.sharing-fixture">Sharing Fixture</a></span></dt><dt><span class="section"><a href="fixtures.html#fixtures.global-state">Global State</a></span></dt></dl></dd><dt><span class="chapter"><a href="organizing-tests.html">7. Organizing Tests</a></span></dt><dd><dl><dt><span class="section"><a href="organizing-tests.html#organizing-tests.filesystem">Composing a Test Suite Using the Filesystem</a></span></dt><dt><span class="section"><a href="organizing-tests.html#organizing-tests.xml-configuration">Composing a Test Suite Using XML Configuration</a></span></dt><dt><span class="section"><a href="organizing-tests.html#organizing-tests.testsuite">Using the TestSuite Class</a></span></dt></dl></dd><dt><span class="chapter"><a href="testcase-extensions.html">8. TestCase Extensions</a></span></dt><dd><dl><dt><span class="section"><a href="testcase-extensions.html#testcase-extensions.output">Testing Output</a></span></dt></dl></dd><dt><span class="chapter"><a href="database.html">9. Database Testing</a></span></dt><dd><dl><dt><span class="section"><a href="database.html#database.datasets">Data Sets</a></span></dt><dd><dl><dt><span class="section"><a href="database.html#database.datasets.flatxml">Flat XML Data Set</a></span></dt><dt><span class="section"><a href="database.html#database.datasets.xml">XML Data Set</a></span></dt><dt><span class="section"><a href="database.html#database.datasets.csv">CSV Data Set</a></span></dt><dt><span class="section"><a href="database.html#database.datasets.replacement">Replacement Data Set</a></span></dt></dl></dd><dt><span class="section"><a href="database.html#database.operations">Operations</a></span></dt><dt><span class="section"><a href="database.html#database.bestpractices">Database Testing Best Practices</a></span></dt></dl></dd><dt><span class="chapter"><a href="incomplete-and-skipped-tests.html">10. Incomplete and Skipped Tests</a></span></dt><dd><dl><dt><span class="section"><a href="incomplete-and-skipped-tests.html#incomplete-and-skipped-tests.incomplete-tests">Incomplete Tests</a></span></dt><dt><span class="section"><a href="incomplete-and-skipped-tests.html#incomplete-and-skipped-tests.skipping-tests">Skipping Tests</a></span></dt></dl></dd><dt><span class="chapter"><a href="test-doubles.html">11. Test Doubles</a></span></dt><dd><dl><dt><span class="section"><a href="test-doubles.html#test-doubles.stubs">Stubs</a></span></dt><dt><span class="section"><a href="test-doubles.html#test-doubles.mock-objects">Mock Objects</a></span></dt><dt><span class="section"><a href="test-doubles.html#test-doubles.stubbing-and-mocking-web-services">Stubbing and Mocking Web Services</a></span></dt><dt><span class="section"><a href="test-doubles.html#test-doubles.mocking-the-filesystem">Mocking the Filesystem</a></span></dt></dl></dd><dt><span class="chapter"><a href="testing-practices.html">12. Testing Practices</a></span></dt><dd><dl><dt><span class="section"><a href="testing-practices.html#testing-practices.during-development">During Development</a></span></dt><dt><span class="section"><a href="testing-practices.html#testing-practices.during-debugging">During Debugging</a></span></dt></dl></dd><dt><span class="chapter"><a href="test-driven-development.html">13. Test-Driven Development</a></span></dt><dd><dl><dt><span class="section"><a href="test-driven-development.html#test-driven-development.bankaccount-example">BankAccount Example</a></span></dt></dl></dd><dt><span class="chapter"><a href="behaviour-driven-development.html">14. Behaviour-Driven Development</a></span></dt><dd><dl><dt><span class="section"><a href="behaviour-driven-development.html#behaviour-driven-development.bowlinggame-example">BowlingGame Example</a></span></dt></dl></dd><dt><span class="chapter"><a href="code-coverage-analysis.html">15. Code Coverage Analysis</a></span></dt><dd><dl><dt><span class="section"><a href="code-coverage-analysis.html#code-coverage-analysis.specifying-covered-methods">Specifying Covered Methods</a></span></dt><dt><span class="section"><a href="code-coverage-analysis.html#code-coverage-analysis.ignoring-code-blocks">Ignoring Code Blocks</a></span></dt><dt><span class="section"><a href="code-coverage-analysis.html#code-coverage-analysis.including-excluding-files">Including and Excluding Files</a></span></dt></dl></dd><dt><span class="chapter"><a href="other-uses-for-tests.html">16. Other Uses for Tests</a></span></dt><dd><dl><dt><span class="section"><a href="other-uses-for-tests.html#other-uses-for-tests.agile-documentation">Agile Documentation</a></span></dt><dt><span class="section"><a href="other-uses-for-tests.html#other-uses-for-tests.cross-team-tests">Cross-Team Tests</a></span></dt></dl></dd><dt><span class="chapter"><a href="skeleton-generator.html">17. Skeleton Generator</a></span></dt><dd><dl><dt><span class="section"><a href="skeleton-generator.html#skeleton-generator.test">Generating a Test Case Class Skeleton</a></span></dt><dt><span class="section"><a href="skeleton-generator.html#skeleton-generator.class">Generating a Class Skeleton from a Test Case Class</a></span></dt></dl></dd><dt><span class="chapter"><a href="selenium.html">18. PHPUnit and Selenium</a></span></dt><dd><dl><dt><span class="section"><a href="selenium.html#selenium.selenium-rc">Selenium RC</a></span></dt><dt><span class="section"><a href="selenium.html#selenium.seleniumtestcase">PHPUnit_Extensions_SeleniumTestCase</a></span></dt></dl></dd><dt><span class="chapter"><a href="logging.html">19. Logging</a></span></dt><dd><dl><dt><span class="section"><a href="logging.html#logging.xml">Test Results (XML)</a></span></dt><dt><span class="section"><a href="logging.html#logging.tap">Test Results (TAP)</a></span></dt><dt><span class="section"><a href="logging.html#logging.json">Test Results (JSON)</a></span></dt><dt><span class="section"><a href="logging.html#logging.codecoverage">Code Coverage (XML)</a></span></dt></dl></dd><dt><span class="chapter"><a href="build-automation.html">20. Build Automation</a></span></dt><dd><dl><dt><span class="section"><a href="build-automation.html#build-automation.ant">Apache Ant</a></span></dt><dt><span class="section"><a href="build-automation.html#build-automation.maven">Apache Maven</a></span></dt><dt><span class="section"><a href="build-automation.html#build-automation.phing">Phing</a></span></dt></dl></dd><dt><span class="chapter"><a href="continuous-integration.html">21. Continuous Integration</a></span></dt><dd><dl><dt><span class="section"><a href="continuous-integration.html#continuous-integration.atlassian-bamboo">Atlassian Bamboo</a></span></dt><dt><span class="section"><a href="continuous-integration.html#continuous-integration.cruisecontrol">CruiseControl</a></span></dt><dt><span class="section"><a href="continuous-integration.html#continuous-integration.phpUnderControl">phpUnderControl</a></span></dt></dl></dd><dt><span class="chapter"><a href="api.html">22. PHPUnit API</a></span></dt><dd><dl><dt><span class="section"><a href="api.html#api.overview">Overview</a></span></dt><dt><span class="section"><a href="api.html#api.assert">PHPUnit_Framework_Assert</a></span></dt><dd><dl><dt><span class="section"><a href="api.html#api.assert.assertArrayHasKey"><code class="literal">assertArrayHasKey()</code></a></span></dt><dt><span class="section"><a href="api.html#api.assert.assertClassHasAttribute"><code class="literal">assertClassHasAttribute()</code></a></span></dt><dt><span class="section"><a href="api.html#api.assert.assertClassHasStaticAttribute"><code class="literal">assertClassHasStaticAttribute()</code></a></span></dt><dt><span class="section"><a href="api.html#api.assert.assertContains"><code class="literal">assertContains()</code></a></span></dt><dt><span class="section"><a href="api.html#api.assert.assertContainsOnly"><code class="literal">assertContainsOnly()</code></a></span></dt><dt><span class="section"><a href="api.html#api.assert.assertEqualXMLStructure"><code class="literal">assertEqualXMLStructure()</code></a></span></dt><dt><span class="section"><a href="api.html#api.assert.assertEquals"><code class="literal">assertEquals()</code></a></span></dt><dt><span class="section"><a href="api.html#api.assert.assertFalse"><code class="literal">assertFalse()</code></a></span></dt><dt><span class="section"><a href="api.html#api.assert.assertFileEquals"><code class="literal">assertFileEquals()</code></a></span></dt><dt><span class="section"><a href="api.html#api.assert.assertFileExists"><code class="literal">assertFileExists()</code></a></span></dt><dt><span class="section"><a href="api.html#api.assert.assertGreaterThan"><code class="literal">assertGreaterThan()</code></a></span></dt><dt><span class="section"><a href="api.html#api.assert.assertGreaterThanOrEqual"><code class="literal">assertGreaterThanOrEqual()</code></a></span></dt><dt><span class="section"><a href="api.html#api.assert.assertLessThan"><code class="literal">assertLessThan()</code></a></span></dt><dt><span class="section"><a href="api.html#api.assert.assertLessThanOrEqual"><code class="literal">assertLessThanOrEqual()</code></a></span></dt><dt><span class="section"><a href="api.html#api.assert.assertNull"><code class="literal">assertNull()</code></a></span></dt><dt><span class="section"><a href="api.html#api.assert.assertObjectHasAttribute"><code class="literal">assertObjectHasAttribute()</code></a></span></dt><dt><span class="section"><a href="api.html#api.assert.assertRegExp"><code class="literal">assertRegExp()</code></a></span></dt><dt><span class="section"><a href="api.html#api.assert.assertSame"><code class="literal">assertSame()</code></a></span></dt><dt><span class="section"><a href="api.html#api.assert.assertSelectCount"><code class="literal">assertSelectCount()</code></a></span></dt><dt><span class="section"><a href="api.html#api.assert.assertSelectEquals"><code class="literal">assertSelectEquals()</code></a></span></dt><dt><span class="section"><a href="api.html#api.assert.assertSelectRegExp"><code class="literal">assertSelectRegExp()</code></a></span></dt><dt><span class="section"><a href="api.html#api.assert.assertStringEndsWith"><code class="literal">assertStringEndsWith()</code></a></span></dt><dt><span class="section"><a href="api.html#api.assert.assertStringEqualsFile"><code class="literal">assertStringEqualsFile()</code></a></span></dt><dt><span class="section"><a href="api.html#api.assert.assertStringStartsWith"><code class="literal">assertStringStartsWith()</code></a></span></dt><dt><span class="section"><a href="api.html#api.assert.assertTag"><code class="literal">assertTag()</code></a></span></dt><dt><span class="section"><a href="api.html#api.assert.assertThat"><code class="literal">assertThat()</code></a></span></dt><dt><span class="section"><a href="api.html#api.assert.assertTrue"><code class="literal">assertTrue()</code></a></span></dt><dt><span class="section"><a href="api.html#api.assert.assertType"><code class="literal">assertType()</code></a></span></dt><dt><span class="section"><a href="api.html#api.assert.assertXmlFileEqualsXmlFile"><code class="literal">assertXmlFileEqualsXmlFile()</code></a></span></dt><dt><span class="section"><a href="api.html#api.assert.assertXmlStringEqualsXmlFile"><code class="literal">assertXmlStringEqualsXmlFile()</code></a></span></dt><dt><span class="section"><a href="api.html#api.assert.assertXmlStringEqualsXmlString"><code class="literal">assertXmlStringEqualsXmlString()</code></a></span></dt></dl></dd><dt><span class="section"><a href="api.html#api.test">PHPUnit_Framework_Test</a></span></dt><dt><span class="section"><a href="api.html#api.testcase">PHPUnit_Framework_TestCase</a></span></dt><dt><span class="section"><a href="api.html#api.testsuite">PHPUnit_Framework_TestSuite</a></span></dt><dt><span class="section"><a href="api.html#api.testresult">PHPUnit_Framework_TestResult</a></span></dt><dt><span class="section"><a href="api.html#api.package-structure">Package Structure</a></span></dt></dl></dd><dt><span class="chapter"><a href="extending-phpunit.html">23. Extending PHPUnit</a></span></dt><dd><dl><dt><span class="section"><a href="extending-phpunit.html#extending-phpunit.PHPUnit_Framework_TestCase">Subclass PHPUnit_Framework_TestCase</a></span></dt><dt><span class="section"><a href="extending-phpunit.html#extending-phpunit.Assert">Assert Classes</a></span></dt><dt><span class="section"><a href="extending-phpunit.html#extending-phpunit.PHPUnit_Extensions_TestDecorator">Subclass PHPUnit_Extensions_TestDecorator</a></span></dt><dt><span class="section"><a href="extending-phpunit.html#extending-phpunit.PHPUnit_Framework_Test">Implement PHPUnit_Framework_Test</a></span></dt><dt><span class="section"><a href="extending-phpunit.html#extending-phpunit.PHPUnit_Framework_TestResult">Subclass PHPUnit_Framework_TestResult</a></span></dt><dt><span class="section"><a href="extending-phpunit.html#extending-phpunit.PHPUnit_Framework_TestListener">Implement PHPUnit_Framework_TestListener</a></span></dt><dt><span class="section"><a href="extending-phpunit.html#extending-phpunit.TestRunner">New Test Runner</a></span></dt></dl></dd><dt><span class="appendix"><a href="appendixes.assertions.html">A. Assertions</a></span></dt><dt><span class="appendix"><a href="appendixes.annotations.html">B. Annotations</a></span></dt><dd><dl><dt><span class="section"><a href="appendixes.annotations.html#appendixes.annotations.assert"><code class="literal">@assert</code></a></span></dt><dt><span class="section"><a href="appendixes.annotations.html#appendixes.annotations.backupGlobals"><code class="literal">@backupGlobals</code></a></span></dt><dt><span class="section"><a href="appendixes.annotations.html#appendixes.annotations.backupStaticAttributes"><code class="literal">@backupStaticAttributes</code></a></span></dt><dt><span class="section"><a href="appendixes.annotations.html#appendixes.annotations.covers"><code class="literal">@covers</code></a></span></dt><dt><span class="section"><a href="appendixes.annotations.html#appendixes.annotations.dataProvider"><code class="literal">@dataProvider</code></a></span></dt><dt><span class="section"><a href="appendixes.annotations.html#appendixes.annotations.depends"><code class="literal">@depends</code></a></span></dt><dt><span class="section"><a href="appendixes.annotations.html#appendixes.annotations.expectedException"><code class="literal">@expectedException</code></a></span></dt><dt><span class="section"><a href="appendixes.annotations.html#appendixes.annotations.group"><code class="literal">@group</code></a></span></dt><dt><span class="section"><a href="appendixes.annotations.html#appendixes.annotations.outputBuffering"><code class="literal">@outputBuffering</code></a></span></dt><dt><span class="section"><a href="appendixes.annotations.html#appendixes.annotations.runTestsInSeparateProcesses"><code class="literal">@runTestsInSeparateProcesses</code></a></span></dt><dt><span class="section"><a href="appendixes.annotations.html#appendixes.annotations.runInSeparateProcess"><code class="literal">@runInSeparateProcess</code></a></span></dt><dt><span class="section"><a href="appendixes.annotations.html#appendixes.annotations.test"><code class="literal">@test</code></a></span></dt><dt><span class="section"><a href="appendixes.annotations.html#appendixes.annotations.testdox"><code class="literal">@testdox</code></a></span></dt><dt><span class="section"><a href="appendixes.annotations.html#appendixes.annotations.ticket"><code class="literal">@ticket</code></a></span></dt></dl></dd><dt><span class="appendix"><a href="appendixes.configuration.html" class="active">C. The XML Configuration File</a></span></dt><dd><dl><dt><span class="section"><a href="appendixes.configuration.html#appendixes.configuration.phpunit">PHPUnit</a></span></dt><dt><span class="section"><a href="appendixes.configuration.html#appendixes.configuration.testsuites">Test Suites</a></span></dt><dt><span class="section"><a href="appendixes.configuration.html#appendixes.configuration.groups">Groups</a></span></dt><dt><span class="section"><a href="appendixes.configuration.html#appendixes.configuration.blacklist-whitelist">Including and Excluding Files for Code Coverage</a></span></dt><dt><span class="section"><a href="appendixes.configuration.html#appendixes.configuration.logging">Logging</a></span></dt><dt><span class="section"><a href="appendixes.configuration.html#appendixes.configuration.test-listeners">Test Listeners</a></span></dt><dt><span class="section"><a href="appendixes.configuration.html#appendixes.configuration.php-ini-constants-variables">Setting PHP INI settings, Constants and Global Variables</a></span></dt><dt><span class="section"><a href="appendixes.configuration.html#appendixes.configuration.selenium-rc">Configuring Browsers for Selenium RC</a></span></dt></dl></dd><dt><span class="appendix"><a href="appendixes.index.html">D. Index</a></span></dt><dd><dl><dt><span class="index"><a href="appendixes.index.html#appendixes.index.index"></a></span></dt></dl></dd><dt><span class="appendix"><a href="appendixes.bibliography.html">E. Bibliography</a></span></dt><dt><span class="appendix"><a href="appendixes.copyright.html">F. Copyright</a></span></dt></dl>
254
<dl><dt><span class="chapter"><a href="automating-tests.html">1. Automating Tests</a></span></dt><dt><span class="chapter"><a href="goals.html">2. PHPUnit's Goals</a></span></dt><dt><span class="chapter"><a href="installation.html">3. Installing PHPUnit</a></span></dt><dt><span class="chapter"><a href="writing-tests-for-phpunit.html">4. Writing Tests for PHPUnit</a></span></dt><dd><dl><dt><span class="section"><a href="writing-tests-for-phpunit.html#writing-tests-for-phpunit.test-dependencies">Test Dependencies</a></span></dt><dt><span class="section"><a href="writing-tests-for-phpunit.html#writing-tests-for-phpunit.data-providers">Data Providers</a></span></dt><dt><span class="section"><a href="writing-tests-for-phpunit.html#writing-tests-for-phpunit.exceptions">Testing Exceptions</a></span></dt><dt><span class="section"><a href="writing-tests-for-phpunit.html#writing-tests-for-phpunit.errors">Testing PHP Errors</a></span></dt></dl></dd><dt><span class="chapter"><a href="textui.html">5. The Command-Line Test Runner</a></span></dt><dt><span class="chapter"><a href="fixtures.html">6. Fixtures</a></span></dt><dd><dl><dt><span class="section"><a href="fixtures.html#fixtures.more-setup-than-teardown">More setUp() than tearDown()</a></span></dt><dt><span class="section"><a href="fixtures.html#fixtures.variations">Variations</a></span></dt><dt><span class="section"><a href="fixtures.html#fixtures.sharing-fixture">Sharing Fixture</a></span></dt><dt><span class="section"><a href="fixtures.html#fixtures.global-state">Global State</a></span></dt></dl></dd><dt><span class="chapter"><a href="organizing-tests.html">7. Organizing Tests</a></span></dt><dd><dl><dt><span class="section"><a href="organizing-tests.html#organizing-tests.filesystem">Composing a Test Suite Using the Filesystem</a></span></dt><dt><span class="section"><a href="organizing-tests.html#organizing-tests.xml-configuration">Composing a Test Suite Using XML Configuration</a></span></dt><dt><span class="section"><a href="organizing-tests.html#organizing-tests.testsuite">Using the TestSuite Class</a></span></dt></dl></dd><dt><span class="chapter"><a href="testcase-extensions.html">8. TestCase Extensions</a></span></dt><dd><dl><dt><span class="section"><a href="testcase-extensions.html#testcase-extensions.output">Testing Output</a></span></dt></dl></dd><dt><span class="chapter"><a href="database.html">9. Database Testing</a></span></dt><dd><dl><dt><span class="section"><a href="database.html#database.datasets">Data Sets</a></span></dt><dd><dl><dt><span class="section"><a href="database.html#database.datasets.flatxml">Flat XML Data Set</a></span></dt><dt><span class="section"><a href="database.html#database.datasets.xml">XML Data Set</a></span></dt><dt><span class="section"><a href="database.html#database.datasets.csv">CSV Data Set</a></span></dt><dt><span class="section"><a href="database.html#database.datasets.replacement">Replacement Data Set</a></span></dt></dl></dd><dt><span class="section"><a href="database.html#database.operations">Operations</a></span></dt><dt><span class="section"><a href="database.html#database.bestpractices">Database Testing Best Practices</a></span></dt></dl></dd><dt><span class="chapter"><a href="incomplete-and-skipped-tests.html">10. Incomplete and Skipped Tests</a></span></dt><dd><dl><dt><span class="section"><a href="incomplete-and-skipped-tests.html#incomplete-and-skipped-tests.incomplete-tests">Incomplete Tests</a></span></dt><dt><span class="section"><a href="incomplete-and-skipped-tests.html#incomplete-and-skipped-tests.skipping-tests">Skipping Tests</a></span></dt></dl></dd><dt><span class="chapter"><a href="test-doubles.html">11. Test Doubles</a></span></dt><dd><dl><dt><span class="section"><a href="test-doubles.html#test-doubles.stubs">Stubs</a></span></dt><dt><span class="section"><a href="test-doubles.html#test-doubles.mock-objects">Mock Objects</a></span></dt><dt><span class="section"><a href="test-doubles.html#test-doubles.stubbing-and-mocking-web-services">Stubbing and Mocking Web Services</a></span></dt><dt><span class="section"><a href="test-doubles.html#test-doubles.mocking-the-filesystem">Mocking the Filesystem</a></span></dt></dl></dd><dt><span class="chapter"><a href="testing-practices.html">12. Testing Practices</a></span></dt><dd><dl><dt><span class="section"><a href="testing-practices.html#testing-practices.during-development">During Development</a></span></dt><dt><span class="section"><a href="testing-practices.html#testing-practices.during-debugging">During Debugging</a></span></dt></dl></dd><dt><span class="chapter"><a href="test-driven-development.html">13. Test-Driven Development</a></span></dt><dd><dl><dt><span class="section"><a href="test-driven-development.html#test-driven-development.bankaccount-example">BankAccount Example</a></span></dt></dl></dd><dt><span class="chapter"><a href="code-coverage-analysis.html">14. Code Coverage Analysis</a></span></dt><dd><dl><dt><span class="section"><a href="code-coverage-analysis.html#code-coverage-analysis.specifying-covered-methods">Specifying Covered Methods</a></span></dt><dt><span class="section"><a href="code-coverage-analysis.html#code-coverage-analysis.ignoring-code-blocks">Ignoring Code Blocks</a></span></dt><dt><span class="section"><a href="code-coverage-analysis.html#code-coverage-analysis.including-excluding-files">Including and Excluding Files</a></span></dt></dl></dd><dt><span class="chapter"><a href="other-uses-for-tests.html">15. Other Uses for Tests</a></span></dt><dd><dl><dt><span class="section"><a href="other-uses-for-tests.html#other-uses-for-tests.agile-documentation">Agile Documentation</a></span></dt><dt><span class="section"><a href="other-uses-for-tests.html#other-uses-for-tests.cross-team-tests">Cross-Team Tests</a></span></dt></dl></dd><dt><span class="chapter"><a href="skeleton-generator.html">16. Skeleton Generator</a></span></dt><dd><dl><dt><span class="section"><a href="skeleton-generator.html#skeleton-generator.test">Generating a Test Case Class Skeleton</a></span></dt><dt><span class="section"><a href="skeleton-generator.html#skeleton-generator.class">Generating a Class Skeleton from a Test Case Class</a></span></dt></dl></dd><dt><span class="chapter"><a href="selenium.html">17. PHPUnit and Selenium</a></span></dt><dd><dl><dt><span class="section"><a href="selenium.html#selenium.selenium-rc">Selenium RC</a></span></dt><dt><span class="section"><a href="selenium.html#selenium.seleniumtestcase">PHPUnit_Extensions_SeleniumTestCase</a></span></dt></dl></dd><dt><span class="chapter"><a href="logging.html">18. Logging</a></span></dt><dd><dl><dt><span class="section"><a href="logging.html#logging.xml">Test Results (XML)</a></span></dt><dt><span class="section"><a href="logging.html#logging.tap">Test Results (TAP)</a></span></dt><dt><span class="section"><a href="logging.html#logging.json">Test Results (JSON)</a></span></dt><dt><span class="section"><a href="logging.html#logging.codecoverage">Code Coverage (XML)</a></span></dt></dl></dd><dt><span class="chapter"><a href="build-automation.html">19. Build Automation</a></span></dt><dd><dl><dt><span class="section"><a href="build-automation.html#build-automation.ant">Apache Ant</a></span></dt><dt><span class="section"><a href="build-automation.html#build-automation.maven">Apache Maven</a></span></dt><dt><span class="section"><a href="build-automation.html#build-automation.phing">Phing</a></span></dt></dl></dd><dt><span class="chapter"><a href="continuous-integration.html">20. Continuous Integration</a></span></dt><dd><dl><dt><span class="section"><a href="continuous-integration.html#continuous-integration.atlassian-bamboo">Atlassian Bamboo</a></span></dt><dt><span class="section"><a href="continuous-integration.html#continuous-integration.cruisecontrol">CruiseControl</a></span></dt><dt><span class="section"><a href="continuous-integration.html#continuous-integration.phpUnderControl">phpUnderControl</a></span></dt></dl></dd><dt><span class="chapter"><a href="api.html">21. PHPUnit API</a></span></dt><dd><dl><dt><span class="section"><a href="api.html#api.overview">Overview</a></span></dt><dt><span class="section"><a href="api.html#api.assert">PHPUnit_Framework_Assert</a></span></dt><dd><dl><dt><span class="section"><a href="api.html#api.assert.assertArrayHasKey"><code class="literal">assertArrayHasKey()</code></a></span></dt><dt><span class="section"><a href="api.html#api.assert.assertClassHasAttribute"><code class="literal">assertClassHasAttribute()</code></a></span></dt><dt><span class="section"><a href="api.html#api.assert.assertClassHasStaticAttribute"><code class="literal">assertClassHasStaticAttribute()</code></a></span></dt><dt><span class="section"><a href="api.html#api.assert.assertContains"><code class="literal">assertContains()</code></a></span></dt><dt><span class="section"><a href="api.html#api.assert.assertContainsOnly"><code class="literal">assertContainsOnly()</code></a></span></dt><dt><span class="section"><a href="api.html#api.assert.assertEmpty"><code class="literal">assertEmpty()</code></a></span></dt><dt><span class="section"><a href="api.html#api.assert.assertEqualXMLStructure"><code class="literal">assertEqualXMLStructure()</code></a></span></dt><dt><span class="section"><a href="api.html#api.assert.assertEquals"><code class="literal">assertEquals()</code></a></span></dt><dt><span class="section"><a href="api.html#api.assert.assertFalse"><code class="literal">assertFalse()</code></a></span></dt><dt><span class="section"><a href="api.html#api.assert.assertFileEquals"><code class="literal">assertFileEquals()</code></a></span></dt><dt><span class="section"><a href="api.html#api.assert.assertFileExists"><code class="literal">assertFileExists()</code></a></span></dt><dt><span class="section"><a href="api.html#api.assert.assertGreaterThan"><code class="literal">assertGreaterThan()</code></a></span></dt><dt><span class="section"><a href="api.html#api.assert.assertGreaterThanOrEqual"><code class="literal">assertGreaterThanOrEqual()</code></a></span></dt><dt><span class="section"><a href="api.html#api.assert.assertInstanceOf"><code class="literal">assertInstanceOf()</code></a></span></dt><dt><span class="section"><a href="api.html#api.assert.assertInternalType"><code class="literal">assertInternalType()</code></a></span></dt><dt><span class="section"><a href="api.html#api.assert.assertLessThan"><code class="literal">assertLessThan()</code></a></span></dt><dt><span class="section"><a href="api.html#api.assert.assertLessThanOrEqual"><code class="literal">assertLessThanOrEqual()</code></a></span></dt><dt><span class="section"><a href="api.html#api.assert.assertNull"><code class="literal">assertNull()</code></a></span></dt><dt><span class="section"><a href="api.html#api.assert.assertObjectHasAttribute"><code class="literal">assertObjectHasAttribute()</code></a></span></dt><dt><span class="section"><a href="api.html#api.assert.assertRegExp"><code class="literal">assertRegExp()</code></a></span></dt><dt><span class="section"><a href="api.html#api.assert.assertStringMatchesFormat"><code class="literal">assertStringMatchesFormat()</code></a></span></dt><dt><span class="section"><a href="api.html#api.assert.assertStringMatchesFormatFile"><code class="literal">assertStringMatchesFormatFile()</code></a></span></dt><dt><span class="section"><a href="api.html#api.assert.assertSame"><code class="literal">assertSame()</code></a></span></dt><dt><span class="section"><a href="api.html#api.assert.assertSelectCount"><code class="literal">assertSelectCount()</code></a></span></dt><dt><span class="section"><a href="api.html#api.assert.assertSelectEquals"><code class="literal">assertSelectEquals()</code></a></span></dt><dt><span class="section"><a href="api.html#api.assert.assertSelectRegExp"><code class="literal">assertSelectRegExp()</code></a></span></dt><dt><span class="section"><a href="api.html#api.assert.assertStringEndsWith"><code class="literal">assertStringEndsWith()</code></a></span></dt><dt><span class="section"><a href="api.html#api.assert.assertStringEqualsFile"><code class="literal">assertStringEqualsFile()</code></a></span></dt><dt><span class="section"><a href="api.html#api.assert.assertStringStartsWith"><code class="literal">assertStringStartsWith()</code></a></span></dt><dt><span class="section"><a href="api.html#api.assert.assertTag"><code class="literal">assertTag()</code></a></span></dt><dt><span class="section"><a href="api.html#api.assert.assertThat"><code class="literal">assertThat()</code></a></span></dt><dt><span class="section"><a href="api.html#api.assert.assertTrue"><code class="literal">assertTrue()</code></a></span></dt><dt><span class="section"><a href="api.html#api.assert.assertType"><code class="literal">assertType()</code></a></span></dt><dt><span class="section"><a href="api.html#api.assert.assertXmlFileEqualsXmlFile"><code class="literal">assertXmlFileEqualsXmlFile()</code></a></span></dt><dt><span class="section"><a href="api.html#api.assert.assertXmlStringEqualsXmlFile"><code class="literal">assertXmlStringEqualsXmlFile()</code></a></span></dt><dt><span class="section"><a href="api.html#api.assert.assertXmlStringEqualsXmlString"><code class="literal">assertXmlStringEqualsXmlString()</code></a></span></dt></dl></dd><dt><span class="section"><a href="api.html#api.test">PHPUnit_Framework_Test</a></span></dt><dt><span class="section"><a href="api.html#api.testcase">PHPUnit_Framework_TestCase</a></span></dt><dt><span class="section"><a href="api.html#api.testsuite">PHPUnit_Framework_TestSuite</a></span></dt><dt><span class="section"><a href="api.html#api.testresult">PHPUnit_Framework_TestResult</a></span></dt><dt><span class="section"><a href="api.html#api.package-structure">Package Structure</a></span></dt></dl></dd><dt><span class="chapter"><a href="extending-phpunit.html">22. Extending PHPUnit</a></span></dt><dd><dl><dt><span class="section"><a href="extending-phpunit.html#extending-phpunit.PHPUnit_Framework_TestCase">Subclass PHPUnit_Framework_TestCase</a></span></dt><dt><span class="section"><a href="extending-phpunit.html#extending-phpunit.Assert">Assert Classes</a></span></dt><dt><span class="section"><a href="extending-phpunit.html#extending-phpunit.PHPUnit_Extensions_TestDecorator">Subclass PHPUnit_Extensions_TestDecorator</a></span></dt><dt><span class="section"><a href="extending-phpunit.html#extending-phpunit.PHPUnit_Framework_Test">Implement PHPUnit_Framework_Test</a></span></dt><dt><span class="section"><a href="extending-phpunit.html#extending-phpunit.PHPUnit_Framework_TestResult">Subclass PHPUnit_Framework_TestResult</a></span></dt><dt><span class="section"><a href="extending-phpunit.html#extending-phpunit.PHPUnit_Framework_TestListener">Implement PHPUnit_Framework_TestListener</a></span></dt><dt><span class="section"><a href="extending-phpunit.html#extending-phpunit.TestRunner">New Test Runner</a></span></dt></dl></dd><dt><span class="appendix"><a href="appendixes.assertions.html">A. Assertions</a></span></dt><dt><span class="appendix"><a href="appendixes.annotations.html">B. Annotations</a></span></dt><dd><dl><dt><span class="section"><a href="appendixes.annotations.html#appendixes.annotations.assert"><code class="literal">@assert</code></a></span></dt><dt><span class="section"><a href="appendixes.annotations.html#appendixes.annotations.author"><code class="literal">@author</code></a></span></dt><dt><span class="section"><a href="appendixes.annotations.html#appendixes.annotations.backupGlobals"><code class="literal">@backupGlobals</code></a></span></dt><dt><span class="section"><a href="appendixes.annotations.html#appendixes.annotations.backupStaticAttributes"><code class="literal">@backupStaticAttributes</code></a></span></dt><dt><span class="section"><a href="appendixes.annotations.html#appendixes.annotations.covers"><code class="literal">@covers</code></a></span></dt><dt><span class="section"><a href="appendixes.annotations.html#appendixes.annotations.dataProvider"><code class="literal">@dataProvider</code></a></span></dt><dt><span class="section"><a href="appendixes.annotations.html#appendixes.annotations.depends"><code class="literal">@depends</code></a></span></dt><dt><span class="section"><a href="appendixes.annotations.html#appendixes.annotations.expectedException"><code class="literal">@expectedException</code></a></span></dt><dt><span class="section"><a href="appendixes.annotations.html#appendixes.annotations.expectedExceptionCode"><code class="literal">@expectedExceptionCode</code></a></span></dt><dt><span class="section"><a href="appendixes.annotations.html#appendixes.annotations.expectedExceptionMessage"><code class="literal">@expectedExceptionMessage</code></a></span></dt><dt><span class="section"><a href="appendixes.annotations.html#appendixes.annotations.group"><code class="literal">@group</code></a></span></dt><dt><span class="section"><a href="appendixes.annotations.html#appendixes.annotations.outputBuffering"><code class="literal">@outputBuffering</code></a></span></dt><dt><span class="section"><a href="appendixes.annotations.html#appendixes.annotations.runTestsInSeparateProcesses"><code class="literal">@runTestsInSeparateProcesses</code></a></span></dt><dt><span class="section"><a href="appendixes.annotations.html#appendixes.annotations.runInSeparateProcess"><code class="literal">@runInSeparateProcess</code></a></span></dt><dt><span class="section"><a href="appendixes.annotations.html#appendixes.annotations.test"><code class="literal">@test</code></a></span></dt><dt><span class="section"><a href="appendixes.annotations.html#appendixes.annotations.testdox"><code class="literal">@testdox</code></a></span></dt><dt><span class="section"><a href="appendixes.annotations.html#appendixes.annotations.ticket"><code class="literal">@ticket</code></a></span></dt></dl></dd><dt><span class="appendix"><a href="appendixes.configuration.html" class="active">C. The XML Configuration File</a></span></dt><dd><dl><dt><span class="section"><a href="appendixes.configuration.html#appendixes.configuration.phpunit">PHPUnit</a></span></dt><dt><span class="section"><a href="appendixes.configuration.html#appendixes.configuration.testsuites">Test Suites</a></span></dt><dt><span class="section"><a href="appendixes.configuration.html#appendixes.configuration.groups">Groups</a></span></dt><dt><span class="section"><a href="appendixes.configuration.html#appendixes.configuration.blacklist-whitelist">Including and Excluding Files for Code Coverage</a></span></dt><dt><span class="section"><a href="appendixes.configuration.html#appendixes.configuration.logging">Logging</a></span></dt><dt><span class="section"><a href="appendixes.configuration.html#appendixes.configuration.test-listeners">Test Listeners</a></span></dt><dt><span class="section"><a href="appendixes.configuration.html#appendixes.configuration.php-ini-constants-variables">Setting PHP INI settings, Constants and Global Variables</a></span></dt><dt><span class="section"><a href="appendixes.configuration.html#appendixes.configuration.selenium-rc">Configuring Browsers for Selenium RC</a></span></dt></dl></dd><dt><span class="appendix"><a href="appendixes.index.html">D. Index</a></span></dt><dd><dl><dt><span class="index"><a href="appendixes.index.html#appendixes.index.index"></a></span></dt></dl></dd><dt><span class="appendix"><a href="appendixes.bibliography.html">E. Bibliography</a></span></dt><dt><span class="appendix"><a href="appendixes.copyright.html">F. Copyright</a></span></dt></dl>