<!-- saved from url=(0014)about:internet --><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"> <html> <!-- Standard Head Part --> <head> <title>NUnit - EventListeners</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>EventListeners (NUnit 2.4.4)</h3> <h4>Purpose</h4> <p>EventListeners are able to respond to events that occur in the course of a test run, usually by recording information of some kind. Note that EventListeners called asynchronously with respect to test execution and are not able to affect the actual execution of the test. <h4>Extension Point</h4> <p>Addins use the host to access this extension point by name: <pre> IExtensionPoint listeners = host.GetExtensionPoint( "EventListeners" );</pre> <h4>Interface</h4> <p>The extension object passed to Install must implement the EventListener interface: <pre> public interface EventListener { void RunStarted( string name, int testCount ); void RunFinished( TestResult result ); void RunFinished( Exception exception ); void TestStarted(TestName testName); void TestFinished(TestResult result); void SuiteStarted(TestName testName); void SuiteFinished(TestResult result); void UnhandledException( Exception exception ); void TestOutput(TestOutput testOutput); } </pre> <p>You must provide all the methods, but the body may be empty for any that you have no need of. </div> <!-- Submenu --> <div id="subnav"> <ul> <li><a href="index.html">NUnit 2.5.7</a></li> <ul> <li><a href="getStarted.html">Getting 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 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><a href="testcaseProviders.html">TestcaseProviders</a></li> <li><a href="datapointProviders.html">DatapointProviders</a></li> <li id="current"><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> </ul> </div> <!-- End of Submenu --> <!-- Standard Footer for NUnit.org --> <div id="footer"> Copyright © 2009 Charlie Poole. All Rights Reserved. </div> <!-- End of Footer --> </body> </html>