![](/img/trans.png)
[英]testng not running in priority order when dependsOnMethods is specified
[英]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”功能。 问题是如何? 期望按优先顺序排列:
给定“用户已登录并设置专家模式”,{
//... setup, a la @BeforeClass
}
然后“用户可以启用bla bla bla” {
//...
}
然后“用户可以检查便便”
//...
}
然后“用户保存更改” {
//...
}
然后“用户还原更改”,{
// Tear Down, a la @AfterClass
}
“只是开始在同一个Java项目中用Groovy编写其他测试类”有什么问题吗?
疯狂的解决方案之一可能是-破坏一切并转移到修昔底德。 但这不是我的选择。
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“测试方法”。
但是,现在我有:
这是测试的样子:
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.