summaryrefslogtreecommitdiffstats
path: root/tools/NUnit/doc/testcaseProviders.html
diff options
context:
space:
mode:
Diffstat (limited to 'tools/NUnit/doc/testcaseProviders.html')
-rw-r--r--tools/NUnit/doc/testcaseProviders.html140
1 files changed, 140 insertions, 0 deletions
diff --git a/tools/NUnit/doc/testcaseProviders.html b/tools/NUnit/doc/testcaseProviders.html
new file mode 100644
index 0000000..60c8cda
--- /dev/null
+++ b/tools/NUnit/doc/testcaseProviders.html
@@ -0,0 +1,140 @@
+<!-- saved from url=(0014)about:internet --><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<html>
+<!-- Standard Head Part -->
+<head>
+<title>NUnit - TestcaseProviders</title>
+<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
+<meta http-equiv="Content-Language" content="en-US">
+<link rel="stylesheet" type="text/css" href="nunit.css">
+<link rel="shortcut icon" href="favicon.ico">
+</head>
+<!-- End Standard Head Part -->
+
+<body>
+
+<!-- Standard Header for NUnit.org -->
+<div id="header">
+ <a id="logo" href="http://www.nunit.org"><img src="img/logo.gif" alt="NUnit.org" title="NUnit.org"></a>
+ <div id="nav">
+ <a href="http://www.nunit.org">NUnit</a>
+ <a class="active" href="index.html">Documentation</a>
+ </div>
+</div>
+<!-- End of Header -->
+
+<div id="content">
+
+<h3>TestCaseProviders (NUnit 2.5)</h3>
+
+<h4>Purpose</h4>
+<p>TestCaseProviders are used with parameterized tests to provide the
+specific test cases that will be used in calling the test.
+
+<h4>Extension Point</h4>
+<p>Addins use the host to access this extension point by name:
+
+<pre>
+ IExtensionPoint listeners = host.GetExtensionPoint( "ParameterProviders" );</pre>
+
+<h4>Interface</h4>
+<p>The extension object passed to Install must implement either the
+ <b>ITestCaseProvider</b> or the <b>ITestCaseProvider2</b> interface:
+
+<pre>
+ public interface ITestCaseProvider
+ {
+ bool HasTestCasesFor( MethodInfo method );
+ IEnumerable GetTestCasesFor( MethodInfo method );
+ }
+
+ public interface ITestCaseProvider2 : ITestCaseProvider
+ {
+ bool HasTestCasesFor( MethodInfo method, Test suite );
+ IEnumerable GetTestCasesFor( MethodInfo method, Test suite );
+ }
+</pre>
+
+<p>NUnit will call <b>ITestCaseProvider2</b> if it is available. Otherwise
+ <b>ITestCaseProvider</b> will be used.
+
+<p><b>HasTestCasesFor</b> should return true if the provider is able to supply test cases
+ for the specified method. If a provider only wants to be used on certain types
+ of tests, it can examine the provided MethodInfo and the suite for which the
+ test is being constructed and return true or false based on what it finds.
+
+<p>The GetParametersFor method should return a list of individual test cases.
+ Each test case may be expressed as a ParameterSet, as an array of arguments
+ or as a custom object containing one or more of the following properties:
+
+ <ul>
+ <li>Arguments
+ <li>RunState
+ <li>NotRunReason
+ <li>ExpectedExceptionType
+ <li>ExpectedExceptionName
+ <li>ExpectedExceptionMessage
+ <li>Result
+ <li>Description
+ <li>TestName
+ </ul>
+
+<p>The ParameterSet class provides all these properties and may be used
+to avoid the overhead of reflecting on the properties.
+
+<h4>Notes:</h4>
+
+<ol>
+<li>Most providers will delegate one of the interface implementations
+ to the other if they implement both.
+<li>TestCaseProviders that use data from the fixture class should use
+ <b>ITestCaseProvider2</b> interface so that they are able to access any
+ arguments supplied for constructing the fixture object.
+<li>Providers that acquire data from outside the fixture will usually
+ be able to work with <b>ITestCaseProvider</b> alone.
+<li>The <b>ITestCaseProvider2</b> interface was added in the NUnit 2.5.1 release.
+</ol>
+
+
+</div>
+
+<!-- Submenu -->
+<div id="subnav">
+<ul>
+<li><a href="index.html">NUnit 2.5.5</a></li>
+<ul>
+<li><a href="getStarted.html">Getting&nbsp;Started</a></li>
+<li><a href="assertions.html">Assertions</a></li>
+<li><a href="constraintModel.html">Constraints</a></li>
+<li><a href="attributes.html">Attributes</a></li>
+<li><a href="runningTests.html">Running&nbsp;Tests</a></li>
+<li><a href="extensibility.html">Extensibility</a></li>
+<ul>
+<li><a href="customConstraints.html">Custom&nbsp;Constraints</a></li>
+<li><a href="nunitAddins.html">NUnit&nbsp;Addins</a></li>
+<ul>
+<li><a href="suiteBuilders.html">SuiteBuilders</a></li>
+<li><a href="testcaseBuilders.html">TestcaseBuilders</a></li>
+<li><a href="testDecorators.html">TestDecorators</a></li>
+<li id="current"><a href="testcaseProviders.html">TestcaseProviders</a></li>
+<li><a href="datapointProviders.html">DatapointProviders</a></li>
+<li><a href="eventListeners.html">EventListeners</a></li>
+</ul>
+<li><a href="extensionTips.html">Tips&nbsp;for&nbsp;Extenders</a></li>
+</ul>
+<li><a href="releaseNotes.html">Release&nbsp;Notes</a></li>
+<li><a href="samples.html">Samples</a></li>
+<li><a href="license.html">License</a></li>
+</ul>
+</ul>
+</div>
+<!-- End of Submenu -->
+
+
+<!-- Standard Footer for NUnit.org -->
+<div id="footer">
+ Copyright &copy; 2009 Charlie Poole. All Rights Reserved.
+</div>
+<!-- End of Footer -->
+
+</body>
+</html>