从夹具中杀死FitNesse

时间:2014-05-08 18:30:02

标签: c# database fitnesse fitnesse-slim ab-initio

我使用FitNesse对使用C#编写的Fixtures进行一些测试。我的一个设备启动了一些测试套件,以便在Unix环境中运行Ab Initio。如果其中的一个测试失败,我希望能够杀死整个测试套件。我想我需要从测试套件中获得某种返回值(在unix盒子上),然后它会被传递回我的夹具,这会杀死FitNesse(从我的C#夹具中)。这就是我现在的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.IsEtlSuccessful()的价值,如果它是假的,它将终止FitNesse。我有两个问题:

这种推理是否正确?

终止/杀死FitNesse所需的代码是什么(如果有更优雅的方式,可以结束测试套件)?

编辑:我做了一些研究,看起来像是&#39;跑步者&#39;我要杀了。仍不确定如何做到这一点......

1 个答案:

答案 0 :(得分:2)

如果您正在使用Slim,则可以在类名中抛出“StopTest”异常以停止测试。

http://www.fitnesse.org/FitNesse.UserGuide.WritingAcceptanceTests.SliM.ExceptionHandling

如果你正在使用Fit,你可以抛出AbandonStoryTestExecption来停止测试。

http://fitsharp.github.io/Fit/AbandonStoryTest.html

在下一个版本中出现了一个新的Fit功能(现在任何一天!)抛出AbandonTestSuiteException来停止整个测试套件。 Slim AFAIK没有类似的功能。