在 TestNG 中,我在许多类中进行了许多测试,这些测试需要页面和/或文章以及可能的其他数据设置。此数据必须是唯一的(AKA、Test1 和 Test2 都需要一篇文章,但它们必须处理相同但独立的文章,以免相互冲突)。我通过 dataProviders 提供文章名称/页面名称。
这是我尝试过/考虑过的:
@dependsOnMethods
. 行不通,因为它不能跨类。@dependsOnGroups
. 这有一个问题,即为所有测试创建单个文章以进行处理。@beforeMethods
. 我无法使用它,因为我无法传入数据@factory
. 我无法使用它,因为我正在使用公司范围内的解决方案,该解决方案目前使用它来传递 webDriver,并且在幕后有使用它的代码- 创建一个测试开始时调用的方法,. 这就是我目前正在做的事情,它工作正常,但是当该方法失败时,TestNG 仍将运行设置方法(然后会失败,并导致 1 个错误导致 8-10 次失败,并浪费测试时间)
基本上我需要一种在函数中抛出 SkipException 的方法,如果它以前失败,而不使用上面的 4 个注释。
编辑:我意识到这个问题并不完整。我将两件事传递给每个函数:一个角色,以及新创建的页面/文章/其他内容的名称。如果我以不同的名称运行相同的方法两次,但传入的角色相同,但它失败了,那么第二次,它应该跳过它......但是,我可能正在用一个没有足够的角色来测试它权限,这会导致抛出异常,但这并不意味着我不想与其他角色一起运行它。