我有一个应用程序自动化项目,它是用java编写的,并在eclipse中使用testng框架。我也在使用appium框架,但这不应该是相关的。我想看看测试执行顺序是什么,而不需要运行完整的测试集。
testng版本:7.3.0
eclipse版本:2020-12(4.18.0)
这样做的原因是因为我想知道考试的效果如何 Test(N-1)
以及 Test(N+1)
. 每个测试中都有“清理”步骤,将应用程序返回到中立状态。所有测试都希望应用程序处于这种中立状态,这样我就可以避免有太多的依赖项(虽然我认为这本身就是一种依赖项,但我离题了)。
问题是,在一个完整的测试集运行期间,我新添加的测试可能会在它的预处理步骤中失败,甚至在它到达实际测试之前。当我试图通过自己运行测试来调试失败时,它成功地通过了。
为了解决不可预见的问题,我想创建一个临时的 Test(N-1)
, Test(N)
,和 Test(N+1)
所以我可以得到一个更好的,更准确的表示测试将如何在测试集中运行。然而,我不能轻易做到这一点,因为我不知道执行顺序。
由于应用程序设计的原因,有一些测试具有一些不可协商的依赖关系。
举个例子:
@Test(groups = {"dependency-group"})
public void doSomething() {
//precondition
//step 1
//step 1 expected results
//step 2
...
}
@Test(dependsOnGroups = {"dependency-group"})
public void doSomethingElse() {
//precondition
//step 1
//step 1 expected results
//step 2
...
}
@Test(dependsOnGroups = {"dependency-group"}, dependsOnMethods = {"doSomethingElse"})
public void doNothing() {
//precondition
//step 1
//step 1 expected results
//step 2
...
}
如果我加入第四个测试
@Test(dependsOnGroups = {"dependency-group"}, dependsOnMethods = {"doSomethingElse"})
public void doEverything() {
//precondition
//step 1
//step 1 expected results
//step 2
...
}
有没有一种方法可以看到它何时在测试集中执行?
我一直在做的就是使用eclipse的outline视图,按字母顺序排列,然后用好的铅笔和纸根据依赖关系重新排列测试。
同样,考虑到示例代码,我可以发现测试集将按以下顺序执行:
1. doSomething()
2. doSomethingElse()
3. doEverything()
4. doNothing()
但是当您有超过5个具有不同依赖项和名称的测试(同样,不可协商)时,这会变得很乏味。eclipse或testng有没有一种有效的方法来帮我完成这项工作,这样我就可以花更多的时间来测试而少唱字母表了?
暂无答案!
目前还没有任何答案,快来回答吧!