是否可以使用 if 语句在 NUnit 测试用例中定义共享变量?

Can if statement be used to define shared variables in NUnit TestCases?

我有一个测试用例需要一个单独的 contestId,但仍然使用与之前测试相同的参数。

由于比赛可能会过期,我查询以获取当前的比赛 ID,而不是对其进行硬编码。

测试是为了确保用户可以在同一时间段内参加多个比赛。第一场比赛开始后,我希望 if 语句为 contestId 分配另一个值。

[TestCase("User1@abc.com", "Pass", TestName = "Contest1 Pass")]
[TestCase("User2@abc.com", "Fail", TestName = "Contest1 Fail")]
[TestCase("User3@abc.com", "Invalid", TestName = "Contest1 Invalid")]
[TestCase("User1@abc.com", "Pass", TestName = "Contest2 Pass")]
public async Task PlayContest(string email, string status)
{
    int contestId = 1;

    if(TestName == "Contest2 Pass")
    {
        contestId = 2;
    }

    //Do work here based on assigned contestId
}

它不允许我使用 TestName 在 if 语句中定义 contestId。有没有办法区分 TestCase 值,以便我可以定义场景为 contestId 分配不同的值?

谢谢。

[TestCase("User1@abc.com", "Pass", "Contest1 Pass")]
[TestCase("User2@abc.com", "Fail",  "Contest1 Fail")]
[TestCase("User3@abc.com", "Invalid",  "Contest1 Invalid")]
[TestCase("User1@abc.com", "Pass",  "Contest2 Pass")]
public async Task PlayContest(string email, string status,string testName)
{
    int contestId = 1;

    if(testName == "Contest2 Pass")
    {
        contestId = 2;
    }

    //Do work here based on assigned contestId
}