2

我正在使用 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 所需的代码是什么(或者如果有更优雅的方式,则结束测试套件)?

编辑:我做了更多的研究,看起来它是我必须杀死的“跑步者”。仍然不确定如何做到这一点......

4

1 回答 1

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 没有可比的功能。

于 2014-05-08T20:50:08.497 回答