繁体   English   中英

有没有隐含的替代方法来替代DependOnMethods TestNG功能? (以相关顺序运行测试)

[英]Is there an implicit alternative to dependsOnMethods TestNG functionality? (running tests in dependent order)

让我们进行以下TestNG测试:

@Test 
public void Test1() {

}

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

}

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

}

测试充当功能性的端到端Webui测试(使用Selenium Webdriver)。 每种测试方法都是端到端场景中的一个步骤。

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

  • 寻找让TestNG随身携带的解决方案
  • 保留TestNG,但使用其他工具,例如easyb? 使用groovy而不是Java ...我可以在easyb中使用TestNG组吗? 是否可以不以bdd样式而是“ junit”样式来进行easyb,例如:

给定“用户已登录并设置专家模式”,{

 //... setup, a la @BeforeClass 

}

然后“用户可以启用bla bla bla” {

 //... 

}

然后“用户可以检查便便”

 //... 

}

然后“用户保存更改” {

 //... 

}

然后“用户还原更改”,{

 // Tear Down, a la @AfterClass 

}

“只是开始在同一个Java项目中用Groovy编写其他测试类”有什么问题吗?

  • 踢TestNG,但是用什么呢? TestNG群组功能-是必需的。

疯狂的解决方案之一可能是-破坏一切并转移到修昔底德。 但这不是我的选择。

PS:我知道依赖测试是一种“不良做法”。 但是我相信,“测试依赖项本身”也是自动化的一个优点。

是的..还有一种替代使用取决于...不要这样做!

正如我在这里回答的那样...

这是可怕的测试逻辑。作为一名经验丰富的专业软件测试工程师,我建议您立即从所采用的这种自动化途径中摆脱出来。

良好的测试体系结构要求每种方法都必须足够自定义,并且在继续操作之前,不应依赖其他测试来完成。 为什么? 因为说测试2取决于测试1。所以说测试1失败了。现在,测试2将会失败..最终,您将使测试1,2,3,4,5测试失败,并且您甚至不知道该做什么。原因是。

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

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

保留TestNG,但使用其他工具,例如easyb? 使用groovy而不是Java ...我可以在easyb中使用TestNG组吗? 是否有可能不以bdd样式而是“ junit”样式

这是我使用的选择。

您将不会有与easyb相似的testng组(至少是开箱即用的),到目前为止,我还没有找到任何方法来“注释” easyb / groovy“测试方法”。

但是,现在我有:

  • 隐式依赖方法。 尽管它们不是完全依赖的-如果某些方法将被“禁用”,下一个方法仍将执行。 但是我的实际目标是可以实现的:由于测试文件是一个普通的脚本,因此所有“测试方法”将按照其编写顺序执行。 一旦需要禁用任何“测试方法”,您就可以简单地注释其代码-这将禁止执行测试,并在报告中将其显示为“待处理”。
  • 测试方法具有可读的“ sting”名称。

这是测试的样子:

beforeAllSetup()

before "each method setup", {
  //implementation
}
after "each method tear down", {
  //...
}

it "first test this", {
  //...
}

it "this will be shown as pending in the report", /*{
  //...
}*/

it "then test this", {
  //...
}

afterAllTearDown()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM