在本地运行测试时忽略OneTimeSetup和TearDown



我用c#编写自动化测试,并通过NUnit进行检查。

Autotests以这样一种方式与TestRail集成,即每次在本地运行测试时,都在TestRail中执行测试运行。所有这些都是这样实现的:

OneTimeSetup:

public void OneTimeSetUp()
{
Client = new TestRailClient(Url, User, Password);
var commandResult = Client.AddRun(_projectId, 2, "Selenium Test Run " + DateTime.UtcNow.Ticks, "Selenium Test Run example", 1);
Console.WriteLine(commandResult.Value);
_runId = commandResult.Value;
}

public void TearDown()
{
var id = TestContext.CurrentContext.Test.Properties.Get("Description").ToString().Replace("C","");
var result = TestContext.CurrentContext.Result.Outcome.Status;
var testrailStatus = result switch
{
TestStatus.Failed => ResultStatus.Failed,
TestStatus.Passed => ResultStatus.Passed,
_ => ResultStatus.Retest
};
var resultForCase = Client.AddResultForCase(_runId, ulong.Parse(id), testrailStatus);
Console.WriteLine(resultForCase.WasSuccessful);
}

我的任务:我需要配置,以便在TestRail中,测试只在TeamCity中启动时运行,当我在本地运行测试时,OneTimeSetUp和TearDown必须以某种方式被忽略。
在TeamCity测试运行与dotnet测试命令
我怎么能忽略OneTimeSetUp和TearDown当我开始本地测试?
谢谢!

在appsettings中。-创建一个变量Environment,默认值为TestRail

然后在hooks中-获取该变量的值,如果它是TestRail- init TestRailClient。

在本地测试运行时,将配置中的Environment更改为Local

你也可以创建appsettings.Development.json config并覆盖Environment。这取决于你的配置方法。

相关内容

最新更新