패키지로 제한된 테스트 작업을 정의하는 방법은 무엇입니까?

픽셀

테스트가 포함 된 gradle 프로젝트가 있습니다. 테스트는 두 개의 패키지로 그룹화됩니다. 각 패키지에 대한 테스트 작업을 갖고 싶습니다.

Gradle의 내 프로젝트 :

project(":tests:my-project") {

    ext {
        drivers = ["phantomJs", "chrome"]
    }

    dependencies {
        ...
    }

    apply plugin: "groovy"
    apply from: "gradle/osSpecificDownloads.gradle"

    List suites = ['smoke', 'stress']
    Map testPackages = ['smoke': 'packagename1.*', 'stress': 'packagename2.*']


    drivers.each { driver ->
            task "${driver}Test"(type: Test) {
                reports {
                    html.destination = reporting.file("$name/tests")
                    junitXml.destination = file("$buildDir/test-results/$name")
                }

                outputs.upToDateWhen { false }  

                systemProperty "geb.build.reportsDir", reporting.file("$name/geb")
                systemProperty "geb.env", driver

            }
    }

    chromeTest {
        dependsOn unzipChromeDriver
        def chromedriverFilename = Os.isFamily(Os.FAMILY_WINDOWS) ? "chromedriver.exe" : "chromedriver"        systemProperty "webdriver.chrome.driver", new File(unzipChromeDriver.outputs.files.singleFile, chromedriverFilename).absolutePath
    }

    phantomJsTest {
            dependsOn unzipPhantomJs
            def phantomJsFilename = Os.isFamily(Os.FAMILY_WINDOWS) ? "bin/phantomjs.exe" : "bin/phantomjs"
            systemProperty "phantomjs.binary.path", new File(unzipPhantomJs.outputs.files.singleFile, phantomJsFilename).absolutePath
    }

    test {
        dependsOn drivers.collect { tasks["${it}Test"] }
        enabled = false
    }
}
Stanislav

다음과 같이 시도 할 수 있습니다.

먼저, 연기 테스트와 스트레스 테스트를위한 2 개의 작업을 만듭니다. 예를 들어 연기 테스트 중 하나만 보여 드리겠습니다. 스트레스 테스트 작업은 동일하게 보입니다.

//this task will run all the smoke tests
task runSmokeTests() {

}

그런 다음 testPackagesGradle에서 사용할 수 있도록 값을 변경하십시오 .

Map testPackages = ['smoke': 'packagename1/*', 'stress': 'packagename2/*']

그런 다음 드라이버를 반복하고 Test유형의 작업을 만듭니다 .했던 것과 동일하지만 include스모크 테스트가있는 패키지를 가리키는 매개 변수를 사용하여 작업 정의 후 다음 runSmokeTests과 같이 새로 만든 작업에 따라 작업을 만듭니다 .

drivers.each { driver ->
    Task smokeTestTask = task "${driver}SmokeTest"(type: Test) {
        reports {
            html.destination = reporting.file("$name/tests")
            junitXml.destination = file("$buildDir/test-results/$name")
        }

        include testPackages.get('smoke')

        outputs.upToDateWhen { false }

        systemProperty "geb.build.reportsDir", reporting.file("$name/geb")
        systemProperty "geb.env", driver

    }
    runSmokeTests.dependsOn smokeTestTask 
}

지금부터 최소 2 개의 작업을 만들었습니다. phantomJsSmokeTestchromeSmokeTest, 각각 자체 패키지 만 포함합니다. runSmokeTests둘 다에 의존 하기 때문에 모든 연기 테스트를 실행하기 위해 실행할 수 있습니다.

원하는 경우 drivers.each테스트 유형을 반복하기 위해 내부 에 반복을 하나 더 추가 하고 구성을 더욱 유연하게 만들기 위해 더 많은 논리를 제공 할 수 있습니다. 그러나 IMHO는 좋지 않습니다.이 솔루션은 유지 관리 및 이해가 어려울 수 있기 때문에 많은 양의 테스트 유형을 갖게 될 것입니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

지정된 테스트가 실패한 후 테스트 스위트 실행을 중지하도록 강제하는 방법은 무엇입니까?

분류에서Dev

인턴으로 기능 테스트의 제한 시간을 설정하는 방법은 무엇입니까?

분류에서Dev

업데이트 된 패키지의 새로운 기능을 찾는 방법은 무엇입니까?

분류에서Dev

설치된 패키지 선택을 한 Fedora 인스턴스에서 다른 인스턴스로 복제하는 방법은 무엇입니까?

분류에서Dev

작업이 실패 할 때 특정 시간이 지난 후 작업이 해제되었는지 테스트하는 방법은 무엇입니까?

분류에서Dev

OUnit으로 테스트 시간 제한을 설정하는 방법은 무엇입니까?

분류에서Dev

TestNg + Spring + H2 데이터베이스의 각 테스트에 대한 롤백 작업을 방지하는 방법은 무엇입니까?

분류에서Dev

텍스트의 가시성을 컨테이너로 제한하는 방법은 무엇입니까?

분류에서Dev

스냅 패키지로 설치된 파일을 나열하는 방법은 무엇입니까?

분류에서Dev

다른 패키지와 동일한 이름을 가진 소스에서 빌드 된 패키지를 제거하는 방법은 무엇입니까?

분류에서Dev

특정 패키지 / 소프트웨어를 Update \ Upgrade로 제한하는 방법은 무엇입니까?

분류에서Dev

저장소에서 정확한 패키지 업데이트 만 허용하는 방법은 무엇입니까?

분류에서Dev

GitHub 작업에 대한 문자열로 이벤트 구성을 설정하는 방법은 무엇입니까?

분류에서Dev

다른 컨트롤러의 작업으로 양식을 제출하는 방법은 무엇입니까?

분류에서Dev

초기화 스크립트가 잘못 작동하여 제대로 구성되지 않은 패키지를 처리하는 방법은 무엇입니까?

분류에서Dev

업데이트 작업을 테스트하는 방법은 무엇입니까?

분류에서Dev

Movidius에서 사용자 지정 생성 된 tensorflow 모델을 테스트하는 방법은 무엇입니까?

분류에서Dev

한 줄의 명령으로 비활성화 된 (사용하지 않는) 스냅 패키지를 제거하는 방법은 무엇입니까?

분류에서Dev

데비안 테스트 패키지 버전과 안정적인 버전을 CLI / 스크립트로 구분하는 방법은 무엇입니까?

분류에서Dev

데비안 테스트 패키지 버전과 안정적인 버전을 CLI / 스크립트로 구분하는 방법은 무엇입니까?

분류에서Dev

Recyclerview의 지정된 위치에 editText의 텍스트 속성을 설정하는 방법은 무엇입니까?

분류에서Dev

ECC가 제대로 작동하는지 테스트하는 방법은 무엇입니까?

분류에서Dev

팝업에서 로그인 한 WebPageTest로 페이지를 테스트하는 방법은 무엇입니까?

분류에서Dev

에코로 작성한 링크의 스타일을 지정하는 방법은 무엇입니까?

분류에서Dev

DolphinDB에서 텍스트 파일의 지정된 열을로드하는 방법은 무엇입니까?

분류에서Dev

Postgres에서 특정 스키마의 모든 테이블을 삭제하는 방법은 무엇입니까?

분류에서Dev

업데이트 설치로 인해 손상된 패키지를 수정하거나 다시 설치하는 방법은 무엇입니까?

분류에서Dev

org-mode : 헤드 라인 텍스트로 제한된 의제 키워드 검색을 수행하는 방법은 무엇입니까?

분류에서Dev

quantstrat 및 blotter 패키지 작업에 적합한 R 버전을 선택하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    지정된 테스트가 실패한 후 테스트 스위트 실행을 중지하도록 강제하는 방법은 무엇입니까?

  2. 2

    인턴으로 기능 테스트의 제한 시간을 설정하는 방법은 무엇입니까?

  3. 3

    업데이트 된 패키지의 새로운 기능을 찾는 방법은 무엇입니까?

  4. 4

    설치된 패키지 선택을 한 Fedora 인스턴스에서 다른 인스턴스로 복제하는 방법은 무엇입니까?

  5. 5

    작업이 실패 할 때 특정 시간이 지난 후 작업이 해제되었는지 테스트하는 방법은 무엇입니까?

  6. 6

    OUnit으로 테스트 시간 제한을 설정하는 방법은 무엇입니까?

  7. 7

    TestNg + Spring + H2 데이터베이스의 각 테스트에 대한 롤백 작업을 방지하는 방법은 무엇입니까?

  8. 8

    텍스트의 가시성을 컨테이너로 제한하는 방법은 무엇입니까?

  9. 9

    스냅 패키지로 설치된 파일을 나열하는 방법은 무엇입니까?

  10. 10

    다른 패키지와 동일한 이름을 가진 소스에서 빌드 된 패키지를 제거하는 방법은 무엇입니까?

  11. 11

    특정 패키지 / 소프트웨어를 Update \ Upgrade로 제한하는 방법은 무엇입니까?

  12. 12

    저장소에서 정확한 패키지 업데이트 만 허용하는 방법은 무엇입니까?

  13. 13

    GitHub 작업에 대한 문자열로 이벤트 구성을 설정하는 방법은 무엇입니까?

  14. 14

    다른 컨트롤러의 작업으로 양식을 제출하는 방법은 무엇입니까?

  15. 15

    초기화 스크립트가 잘못 작동하여 제대로 구성되지 않은 패키지를 처리하는 방법은 무엇입니까?

  16. 16

    업데이트 작업을 테스트하는 방법은 무엇입니까?

  17. 17

    Movidius에서 사용자 지정 생성 된 tensorflow 모델을 테스트하는 방법은 무엇입니까?

  18. 18

    한 줄의 명령으로 비활성화 된 (사용하지 않는) 스냅 패키지를 제거하는 방법은 무엇입니까?

  19. 19

    데비안 테스트 패키지 버전과 안정적인 버전을 CLI / 스크립트로 구분하는 방법은 무엇입니까?

  20. 20

    데비안 테스트 패키지 버전과 안정적인 버전을 CLI / 스크립트로 구분하는 방법은 무엇입니까?

  21. 21

    Recyclerview의 지정된 위치에 editText의 텍스트 속성을 설정하는 방법은 무엇입니까?

  22. 22

    ECC가 제대로 작동하는지 테스트하는 방법은 무엇입니까?

  23. 23

    팝업에서 로그인 한 WebPageTest로 페이지를 테스트하는 방법은 무엇입니까?

  24. 24

    에코로 작성한 링크의 스타일을 지정하는 방법은 무엇입니까?

  25. 25

    DolphinDB에서 텍스트 파일의 지정된 열을로드하는 방법은 무엇입니까?

  26. 26

    Postgres에서 특정 스키마의 모든 테이블을 삭제하는 방법은 무엇입니까?

  27. 27

    업데이트 설치로 인해 손상된 패키지를 수정하거나 다시 설치하는 방법은 무엇입니까?

  28. 28

    org-mode : 헤드 라인 텍스트로 제한된 의제 키워드 검색을 수행하는 방법은 무엇입니까?

  29. 29

    quantstrat 및 blotter 패키지 작업에 적합한 R 버전을 선택하는 방법은 무엇입니까?

뜨겁다태그

보관