Testing 在NUnit[拆卸]中,如何确定测试是否单独运行?
因此,在中,我得到了和测试结果消息,但我想特别处理测试是单独运行(测试会话中的单个测试)还是在一整套测试中启动(例如,“运行所有测试/解决方案中的所有测试”) 目标是检测开发人员是单独启动测试(从VisualStudio中手动启动),还是使用持续集成系统启动测试 这就是我到目前为止所做的:Testing 在NUnit[拆卸]中,如何确定测试是否单独运行?,testing,nunit,Testing,Nunit,因此,在中,我得到了和测试结果消息,但我想特别处理测试是单独运行(测试会话中的单个测试)还是在一整套测试中启动(例如,“运行所有测试/解决方案中的所有测试”) 目标是检测开发人员是单独启动测试(从VisualStudio中手动启动),还是使用持续集成系统启动测试 这就是我到目前为止所做的: /// <summary> /// A helper function for resolving problems when string comparison fails. /// &
/// <summary>
/// A helper function for resolving problems when string comparison fails.
/// </summary>
/// <remarks>
/// Intended to be used to analyze the detected differences.
/// </remarks>
[TearDown]
public void CompareNonMatchingStringsOnFailure() {
if (TestContext.CurrentContext.Result.Outcome.Status == TestStatus.Failed) {
string outputMessage = TestContext.CurrentContext.Result.Message;
if (outputMessage.StartsWith("Expected string to be ")) {
// do extended comparison
// This should only run on single runs, which were initiated manually from visual studio
//...
}
}
}
//
///用于在字符串比较失败时解决问题的帮助函数。
///
///
///用于分析检测到的差异。
///
[撕裂]
public void compareNoMachingsTringSonFailure(){
if(TestContext.CurrentContext.Result.Output.Status==TestStatus.Failed){
字符串outputMessage=TestContext.CurrentContext.Result.Message;
if(outputMessage.StartsWith(“预期字符串为”)){
//进行扩展比较
//这应该只在单个运行上运行,这些运行是从VisualStudio手动启动的
//...
}
}
}
如何在拆卸方法中获取有关测试运行/会话的信息?您不能在拆卸代码中这样做,因为(1)拆卸仍然是测试的一部分,(2)测试不应该知道运行它们的人、运行它们的原因等。执行环境知道测试,但是测试不知道执行环境。事实上,要确保每个环境中的工作方式相同,NUnit会遇到很多麻烦。虽然有欺骗NUnit的方法,但它们通常都是坏主意和版本依赖 以下是你能做的事
[Explicit]
这不是你所要求的。如果您运行整个fixture,您将获得所有继承测试方法的完整比较。然而,对于你想要实现的目标来说,这可能已经足够了。好主意。见鬼,我甚至尝试将[Explicit]属性添加到[TearDown]方法中作为测试。但这并不奏效:-/