在本地运行测试时忽略 OneTimeSetup 和 TearDown
ignore OneTimeSetup and TearDown when tests runing locally
我用 C# 编写自动化测试并通过 NUnit 检查。
Autotests 与 TestRail 集成的方式是,每次在本地 运行 测试时,都会在 TestRail 中执行 运行 测试。所有这一切都是这样实现的:
一次性设置:
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 .
在使用 dotnet test 命令
的 TeamCity 测试 运行
当我在本地开始测试时,如何忽略 OneTimeSetUp 和 TearDown?
谢谢!
在 appsettings.json 或您正在使用的任何其他配置中 - 创建一个默认值为 TestRail
的变量 Environment
。
然后在钩子中 - 获取此变量的值,如果它是 TestRail
- init TestRailClient.
在本地测试中 运行 - 将配置中的 Environment
更改为 Local
。
您还可以在其中创建 appsettings.Development.json 配置并覆盖 Environment
。取决于您的配置方法。
我用 C# 编写自动化测试并通过 NUnit 检查。
Autotests 与 TestRail 集成的方式是,每次在本地 运行 测试时,都会在 TestRail 中执行 运行 测试。所有这一切都是这样实现的:
一次性设置:
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 .
在使用 dotnet test 命令
的 TeamCity 测试 运行
当我在本地开始测试时,如何忽略 OneTimeSetUp 和 TearDown?
谢谢!
在 appsettings.json 或您正在使用的任何其他配置中 - 创建一个默认值为 TestRail
的变量 Environment
。
然后在钩子中 - 获取此变量的值,如果它是 TestRail
- init TestRailClient.
在本地测试中 运行 - 将配置中的 Environment
更改为 Local
。
您还可以在其中创建 appsettings.Development.json 配置并覆盖 Environment
。取决于您的配置方法。