#region Copyright (c) 2002-2003, James W. Newkirk, Michael C. Two, Alexei A. Vorontsov, Charlie Poole, Philip A. Craig /************************************************************************************ ' ' Copyright © 2002-2003 James W. Newkirk, Michael C. Two, Alexei A. Vorontsov, Charlie Poole ' Copyright © 2000-2003 Philip A. Craig ' ' This software is provided 'as-is', without any express or implied warranty. In no ' event will the authors be held liable for any damages arising from the use of this ' software. ' ' Permission is granted to anyone to use this software for any purpose, including ' commercial applications, and to alter it and redistribute it freely, subject to the ' following restrictions: ' ' 1. The origin of this software must not be misrepresented; you must not claim that ' you wrote the original software. If you use this software in a product, an ' acknowledgment (see the following) in the product documentation is required. ' ' Portions Copyright © 2003 James W. Newkirk, Michael C. Two, Alexei A. Vorontsov, Charlie Poole ' or Copyright © 2000-2003 Philip A. Craig ' ' 2. Altered source versions must be plainly marked as such, and must not be ' misrepresented as being the original software. ' ' 3. This notice may not be removed or altered from any source distribution. ' '***********************************************************************************/ #endregion namespace NUnit.Core { using System; /// /// Summary description for TestResult. /// /// [Serializable] public abstract class TestResult { #region Fields /// /// True if the test executed /// private bool executed; /// /// True if the test was marked as a failure /// private bool isFailure; /// /// True if the setup failed: This means SetUp for a test case, /// or TestFixtureSetUp for a fixture. /// private bool setupFailure; /// /// The elapsed time for executing this test /// private double time; /// /// The name of the test /// private string name; /// /// The test that this result pertains to /// private ITest test; /// /// The stacktrace at the point of failure /// private string stackTrace; /// /// Description of this test /// private string description; /// /// Message giving the reason for failure /// protected string messageString; /// /// Number of asserts executed by this test /// private int assertCount; #endregion #region Protected Constructor protected TestResult(ITest test, string name) { this.name = name; this.test = test; if(test != null) this.description = test.Description; } #endregion #region Properties public bool Executed { get { return executed; } set { executed = value; } } public virtual bool AllTestsExecuted { get { return executed; } } public virtual string Name { get{ return name;} } public ITest Test { get{ return test;} } public virtual bool IsSuccess { get { return !(isFailure); } } public virtual bool IsFailure { get { return isFailure; } set { isFailure = value; } } public bool SetupFailure { get { return setupFailure; } set { setupFailure = value; } } public virtual string Description { get { return description; } set { description = value; } } public double Time { get{ return time; } set{ time = value; } } public string Message { get { return messageString; } } public virtual string StackTrace { get { return stackTrace; } set { stackTrace = value; } } public int AssertCount { get { return assertCount; } set { assertCount = value; } } #endregion #region Public Methods public void NotRun(string reason) { this.executed = false; this.messageString = reason; } public void Failure(string message, string stackTrace ) { Failure( message, stackTrace, false ); } public void Failure(string message, string stackTrace, bool setupFailure) { this.executed = true; this.isFailure = true; this.messageString = message; this.stackTrace = stackTrace; this.setupFailure = setupFailure; } #endregion public abstract void Accept(ResultVisitor visitor); } }