如何使用geb在另一个测试套件中运行多个测试套件

时间:2018-03-05 10:43:39

标签: testing groovy automated-tests spock geb

我想运行我的所有测试套件。我想在一个名为Allrun的测试套装中调用测试套件。 我可以在另一个测试套件中调用测试套件吗?我正在寻找这样的东西:

class Myfirst extends GebReportingSpec {

 def myfunction(){
    when:''
    at mypage1

    and:''
     element1.text() == "mytext1"
  }
}

class Mysecond extends GebReportingSpec {

  def mysecondFunction() {
    when:''
    at mypage2

    and:''
     element2.text() == "mytext2"

   }

 }

 class AlltestSuites extends GebReportingSpec {
     Myfirst myfirst = new Myfirst ()
     Mysecond  mysecond = new Mysecond ()


    def allrun(){
          myfirst.myfunction() 
          mysecond.mysecondFunction()
      }


  }

我该怎么做?有没有人有想法

2 个答案:

答案 0 :(得分:0)

您可以创建如下所示的AllRun.groovy文件,以指定的顺序运行所有类文件[Myfirst.class,Mysecond.class等]。

package geb.groovy

import org.junit.runner.RunWith
import org.junit.runners.Suite
import geb.groovy.scripts.Myfirst
import geb.groovy.scripts.Mysecond


@RunWith(Suite.class)
@Suite.SuiteClasses([Myfirst.class, Mysecond.class])
class CustomJUnitSpecRunner {
}

在build.gradle systemProperties System.properties中,排除单个Myfirst.class,Mysecond.class文件。这样他们只能通过AllRun文件运行一次。

include 'geb/groovy/AllRun/**'
exclude 'geb/groovy/scripts/**'

答案 1 :(得分:0)

可以使用以下命令运行规范组,其中packagesrc/test/groovy/specs下的目录:

mvn test -Dtest=specs.package.*

如果您依赖规格以特定顺序运行,我会重新考虑您的方法。如果需要某种状态的数据,请使用setup()和setupSpec()方法。还要考虑在单个规范中运行相关测试,并按照使用@Stepwise注释编写的顺序运行这些测试。

@Stepwise
class MyStepWiseTest extends GebReportingSpec {

 def myfunction(){
    when:''
    at mypage1

    and:''
     element1.text() == "mytext1"
  }

  def mysecondFunction() {
    when:''
    at mypage2

    and:''
     element2.text() == "mytext2"

   }
}