私がここに持っているのは、以下に示すように複数のテストでNUnitフレームワークを使用するセレンc#のスクリプトであり、TestRailに接続されており、実際のテストが完了する前にテストに合格したかどうかを確認する方法があるかどうか疑問に思っています。
[Test, Order(0)]
public void Login()
{
Navigate.ToLoginPage();
Log.In("user");
TestRailServer.Result("1"); //1 is testcase id
}
[Test, Order(1)]
public void RegisterUser()
{
Add.User();
TestRailServer.Result("2"); //2 is testcase id
}
テストで表示される TestRailServer.Result("1") は、testrail での私の接続であり、TestMethod(Login and RegisterUser) に基づいて、testrail のテスト ケースが成功したか失敗したかを判断します。
これがTestRail接続の私のコードです
private static TestRailClient trClient;
public static void Result(string testCaseID)
{
ulong testRunID = "testRailID";
string testrailComment;
trClient = new TestRailClient("https://client.testrail.net/",
"username", "password");
var result = TestContext.CurrentContext.Result.Outcome.Status;
var testrailStatus = result switch
{
TestStatus.Failed => ResultStatus.Failed,
TestStatus.Passed => ResultStatus.Passed,
_ => ResultStatus.Retest
};
testrailComment = (testrailStatus == ResultStatus.Failed) ? TestContext.CurrentContext.Result.Message : "Passed";
trClient.AddResultForCase(testRunID, ulong.Parse(testCaseID), testrailStatus, testrailComment);
}
しかし問題は、テストが完了する前に TestRailServer.Result が呼び出されるため、TestRailServer を実行する前にテストに合格したかどうかを確認する方法が必要です。
わかりにくかったらお詫びします。