How to run Junit TestSuites from gradle?

前端 未结 1 1347
长情又很酷
长情又很酷 2021-02-13 03:41

I am trying to migrate from Ant build to Gradle in my project. There are a bunch of test cases (subclasses of junit.framework.TestCase) and few test suites (subclasses of junit.

相关标签:
1条回答
  • 2021-02-13 04:26

    This was hard for me to figure out, but here is an example:

    // excerpt from https://github.com/djangofan/WebDriverHandlingMultipleWindows
    package webdriver.test;
    import http.server.SiteServer;
    import java.io.File;
    import java.io.IOException;
    import org.junit.AfterClass;
    import org.junit.BeforeClass;
    import org.junit.runner.RunWith;
    import org.junit.runners.Suite;
    
    @RunWith(Suite.class)
    @Suite.SuiteClasses({ TestHandleCacheOne.class, TestHandleCacheThree.class, TestHandleCacheThree.class })
    public class SuiteOne extends MultiWindowUtils {
    
        public static SiteServer fs;
    
        @BeforeClass
        public static void setUpSuiteOne() {
            File httpRoot = new File("build/resources/test");
            System.out.println("Server root directory is: " + httpRoot.getAbsolutePath() );
            int httpPort = Integer.parseInt("8080");
            try {
                fs = new SiteServer( httpPort , httpRoot );
            } catch (IOException e) {
                e.printStackTrace();
            }
            initializeBrowser( "firefox" );
            System.out.println("Finished setUpSuiteOne");
        }
    
        @AfterClass
        public static void tearDownSuiteOne() {
            closeAllBrowserWindows();  
            System.out.println("Finished tearDownSuiteOne");
        }
    
    }
    

    And a build.gradle similar to this:

    apply plugin: 'java'
    apply plugin: 'eclipse'
    group = 'test.multiwindow'
    
    ext {
        projTitle = 'Test MultiWindow'
        projVersion = '1.0'
    }
    
    repositories {
        mavenCentral()
    }
    
    dependencies {
        compile group: 'org.seleniumhq.selenium', name: 'selenium-java', version: '2.+'
        compile group: 'junit', name: 'junit', version: '4.+'
        compile group: 'org.slf4j', name: 'slf4j-api', version: '1.7.+'
    }
    
    task testGroupOne(type: Test) {
       //include '**/*SuiteOne.*'
       include '**/SuiteOne.class'
       reports.junitXml.destination = "$buildDir/test-results/SuiteOne")
       reports.html.destination = "$buildDir/test-results/SuiteOne")
    }
    
    task testGroupTwo(type: Test) {
       //include '**/*SuiteTwo.*'
       include '**/SuiteTwo.class'
       reports.junitXml.destination = "$buildDir/test-results/SuiteTwo")
       reports.html.destination = "$buildDir/test-results/SuiteTwo")
    }
    
    0 讨论(0)
提交回复
热议问题