我正在研究为各种级别的测试设置SpecFlow,并且作为我希望能够过滤哪些测试运行的一部分。例如,假设我想完成一次完整的GUI测试运行,在开发环境中为GUI测试建立依赖关系,并运行所有标记为@gui的规范,并通过gui执行这些步骤。同样来自同一个脚本,我只想运行标记为@smoke的测试,并设置部署环境所需的任何依赖关系,并通过api执行这些步骤。在某些条件下跳过specflow规范
我知道您可以在运行specflow转轮时过滤标签,但我还需要在测试运行的上下文中更改每个测试的工作方式。另外,我希望在构建服务器上运行时,可以使用单个配置/命令行arg切换此行为更改。
所以我到目前为止的解决方案是为每种测试运行建立配置,并进行配置转换,以便在测试运行启动时将行为注入specflow。但我不确定正确的方式来标记过滤。
我能做somethig这样的:
[BeforeFeature]
public void CheckCanRun()
{
if(TestCannotBeRunInThisContext())
{
ScenarioContext.Current.Pending();
}
}
,我认为这会工作(它不会运行功能),但测试将仍然会在我的测试结果,如果我这会是麻烦m用我的标签过滤掉大部分测试。如果有办法,我可以做到这一点,从完全运行中删除功能?
当你不想运行这些测试时,你如何运行测试?使用内置的VS跑步者?从命令行?在构建服务器上? –
@SamHolder在开发过程中使用resharper测试运行器和CI服务器(在不同的配置级别上运行不同的配置),以及如果可能的话,部署服务器上的几个规格来检查部署是否正常... –