gpt4 book ai didi

java - 是否有 dependentOnMethods TestNG 功能的隐式替代方案? (按相关顺序运行测试)

转载 作者:行者123 更新时间:2023-11-30 04:12:27 24 4
gpt4 key购买 nike

让我们进行以下 TestNG 测试:

@Test 
public void Test1() {

}

@Test (dependsOnMethods={"Test1"})
public void Test2() {

}

@Test (dependsOnMethods={"Test2"})
public void Test3() {

}

测试用作功能性端到端 WebUI 测试(使用 Selenium Webdriver)。每个测试方法都是长 e2e 场景背景下的一个步骤。

我们如何重构测试以使其更具可读性?最好的解决方案可能是删除注释中的所有“dependsOnMethods”参数并隐式提供此“dependsOnMethods”功能。问题是如何?按优先顺序排列的期望:

  • 找到让 TestNG 继续参与的解决方案
  • 保留 TestNG,但涉及任何其他仪器,例如容易吗?使用 groovy 而不是 java...我可以将 TestNG 组与 easyb 一起使用吗?是否有可能,easyb 不是 bdd 风格而是 'junit' 风格,例如:

given "user is logged in and sets expert mode", {

//... setup, a la @BeforeClass 

}

then "user can enable bla bla bla" {

//... 

}

then "user can check poo poo poo" {

//... 

}

then "user save changes" {

//... 

}

then "user revert changes", {

// Tear Down, a la @AfterClass 

}

“刚刚开始在同一个 java 项目中用 groovy 编写其他测试类”是否有任何问题?

  • 启动 TestNG,但使用什么? TestNG 组功能 - 需要。

疯狂的解决方案之一可能是 - 打破一切并转向修昔底德。但这对我来说不是一个选择。

PS我知道依赖测试是一种“不好的做法”。但我相信“测试依赖关系本身”也是自动化的一个好点......

最佳答案

是的..有一种替代方法可以使用依赖...不要这样做!

正如我所回答的那样here...

这是糟糕的测试逻辑..作为一名经验丰富的专业软件测试工程师..我建议您立即从您所在的自动化路径中解散。

良好的测试架构要求每种方法都是自给自足的,并且在继续之前不应依赖于其他测试来完成。为什么?因为假设测试 2 依赖于测试 1。假设测试 1 失败了。现在测试 2 将失败。最终,测试 1、2、3、4、5 测试将失败,而您甚至不知道测试是什么原因是。

先生,我对您的建议是创建自给自足、可维护且简短的测试。

这是一本很棒的读物,它将对您的努力有所帮助:http://www.lw-tech.com/q1/ug_concepts.htm

关于java - 是否有 dependentOnMethods TestNG 功能的隐式替代方案? (按相关顺序运行测试),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19293191/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com