blob: 0339be712079da150b6609a709d82c53d1f7c923 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
|
<!-- 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">
<meta name="norton-safeweb-site-verification" content="tb6xj01p4hgo5x-8wscsmq633y11-e6nhk-bnb5d987bseanyp6p0uew-pec8j963qlzj32k5x9h3r2q7wh-vmy8bbhek5lnpp5w4p8hocouuq39e09jrkihdtaeknua" />
<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.6.1</a></li>
<ul>
<li><a href="getStarted.html">Getting Started</a></li>
<li><a href="writingTests.html">Writing Tests</a></li>
<li><a href="runningTests.html">Running Tests</a></li>
<li><a href="extensibility.html">Extensibility</a></li>
<ul>
<li><a href="customConstraints.html">Custom Constraints</a></li>
<li><a href="nunitAddins.html">NUnit 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 for Extenders</a></li>
</ul>
<li><a href="releaseNotes.html">Release Notes</a></li>
<li><a href="samples.html">Samples</a></li>
<li><a href="license.html">License</a></li>
</ul>
<li><a href="vsTestAdapter.html">NUnit Test Adapter</a></li>
<ul>
<li><a href="vsTestAdapterLicense.html">License</a></li>
</ul>
<li><a href="&r=2.6.1.html"></a></li>
<li><a href="&r=2.6.1.html"></a></li>
</ul>
</div>
<!-- End of Submenu -->
<!-- Standard Footer for NUnit.org -->
<div id="footer">
Copyright © 2012 Charlie Poole. All Rights Reserved.
</div>
<!-- End of Footer -->
</body>
</html>
|