【发布时间】:2021-10-07 19:20:20
【问题描述】:
我用 C# 编写自动化测试并通过 NUnit 进行检查。
自动测试与 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;
}
TearDown 发送结果的位置:
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 test 命令运行测试
当我在本地开始测试时,如何忽略 OneTimeSetUp 和 TearDown?
谢谢!
【问题讨论】:
-
将它们包装在
#if RELEASE块中? -
TeamCity 是否设置了任何可用于识别它的环境变量?
标签: c# automated-tests nunit