使用 [BeforeTestRun] 挂钩忽略来自 specflow 的所有测试
Ignore all tests from specflow using [BeforeTestRun] hook
我的项目有 2 个默认配置(调试和发布)和一个名为 UITest 的自定义配置。
选择 UITest 配置后,它会更改 ioc 以使用我的数据库的内存版本,这非常适合我的 ui 测试。
我正在使用 NUnit 和 resharper 来 运行 我的测试,并且当我的 UITest 配置处于活动状态时,我只想 运行 ui 测试。
我决定使用 [BeforeTestRun] 挂钩来实现此目的,但我无法让它忽略测试。
抛出异常将阻止所有测试 运行ning 但它们显示为失败,我更希望将它们显示为挂起或忽略。这可能吗?
[BeforeTestRun]
public static void BeforeTests()
{
#if !UITest
throw new Exception("abort!");
#endif
}
附录
如果我把它改成这样:
[BeforeTestRun]
public static void BeforeTests()
{
#if !UITest
Assert.Ignore();
#endif
}
然后每个场景都将显示为已忽略,但该功能将失败。
BeforeTestRun
挂钩是 运行 在 运行 开始之前仅执行一次的方法。如果你想跳过整个测试运行,你可以使用Environment.Exit();
退出运行。
在 MSTest 中,测试将显示为不是 运行,但我不确定 NUnit 或 Resharper 如何处理此问题。
我的项目有 2 个默认配置(调试和发布)和一个名为 UITest 的自定义配置。
选择 UITest 配置后,它会更改 ioc 以使用我的数据库的内存版本,这非常适合我的 ui 测试。
我正在使用 NUnit 和 resharper 来 运行 我的测试,并且当我的 UITest 配置处于活动状态时,我只想 运行 ui 测试。
我决定使用 [BeforeTestRun] 挂钩来实现此目的,但我无法让它忽略测试。
抛出异常将阻止所有测试 运行ning 但它们显示为失败,我更希望将它们显示为挂起或忽略。这可能吗?
[BeforeTestRun]
public static void BeforeTests()
{
#if !UITest
throw new Exception("abort!");
#endif
}
附录
如果我把它改成这样:
[BeforeTestRun]
public static void BeforeTests()
{
#if !UITest
Assert.Ignore();
#endif
}
然后每个场景都将显示为已忽略,但该功能将失败。
BeforeTestRun
挂钩是 运行 在 运行 开始之前仅执行一次的方法。如果你想跳过整个测试运行,你可以使用Environment.Exit();
退出运行。
在 MSTest 中,测试将显示为不是 运行,但我不确定 NUnit 或 Resharper 如何处理此问题。