我使用FitNesse对c#编写的fixture进行一些测试。我的一个fixture启动了一些测试套件,以便在Unix环境中的Ab Initio中运行。如果其中一个测试失败,我希望能够终止整个测试套件。我想我需要从测试套件(在unix盒上)返回某种值,然后将其传递回我的fixture,这将杀死FitNesse(从我的c# fixture中)。这就是我的KickOff()方法现在的样子:
public string KickOff()
{
var data = new Dictionary<string, string>();
foreach (var row in System.IO.File.ReadAllLines(unixConfigFile))
data.Add(row.Split('=')[0], String.Join("=", row.Split('=').Skip(1).ToArray()));
string server = data["servername"];
string userId = data["username"];
string password = data["password"];
StringEncryptor3DES encryptor = new StringEncryptor3DES("fitnesse");
password = encryptor.Decrypt(password);
UnixScriptRunner runner = new UnixScriptRunner(server, userId, password, unixPath, scriptName,EtlType.AbInitio);
return runner.Run() & EtlStatus.IsEtlSuccessful(runner.LogFile,EtlType.AbInitio) ? "True":"False";
}
我想我需要一些东西来捕捉etlstatus . isetlsuccess()的值,如果它是假的,它将终止FitNesse。我有两个问题:
这个推理正确吗?
终止/终止FitNesse(或结束测试套件,如果有更优雅的方式)需要什么代码?
编辑:我做了更多的研究,看起来我必须杀死的是"跑步者"。如果您使用Slim,您可以在类名中抛出一个带有"StopTest"的异常来停止测试。
http://www.fitnesse.org/FitNesse.UserGuide.WritingAcceptanceTests.SliM.ExceptionHandling如果你正在使用Fit,你可以抛出一个abandonstorytestexception来停止测试。
http://fitsharp.github.io/Fit/AbandonStoryTest.html下一个版本中有一个新的Fit特性(现在任何一天!)抛出AbandonTestSuiteException来停止整个测试套件。Slim没有类似的功能