mirror of
https://github.com/google/nomulus.git
synced 2025-08-06 09:45:19 +02:00
Partially externalize WebDriver tests
This change does a few things: 1. Partially externalized WebDriver tests by using ChromeDriver as an implementation of WebDriver API in the external build. 2. Refactored WebDriverRule.java to decouple the creation and using of WebDriver related stuff so we can have different implementations in internal and external builds. 3. Refactored the usage of some internal libraries to have a central place to store all of them to make it easier to remove them in the external build. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=233661757
This commit is contained in:
parent
4097dae3b2
commit
76028ba1b4
75 changed files with 1743 additions and 28 deletions
|
@ -188,6 +188,7 @@ dependencies {
|
|||
compile deps['org.apache.beam:beam-sdks-java-extensions-google-cloud-platform-core']
|
||||
compile deps['org.apache.beam:beam-sdks-java-io-google-cloud-platform']
|
||||
maybeRuntime deps['org.apache.commons:commons-compress']
|
||||
testCompile deps['org.apache.commons:commons-text']
|
||||
maybeRuntime deps['org.apache.ftpserver:ftplet-api']
|
||||
testCompile deps['org.apache.ftpserver:ftplet-api']
|
||||
maybeRuntime deps['org.apache.ftpserver:ftpserver-core']
|
||||
|
@ -216,6 +217,10 @@ dependencies {
|
|||
testCompile deps['org.mortbay.jetty:jetty']
|
||||
compile deps['org.mortbay.jetty:servlet-api']
|
||||
maybeRuntime deps['org.mortbay.jetty:jetty-util']
|
||||
testCompile deps['org.seleniumhq.selenium:selenium-api']
|
||||
testCompile deps['org.seleniumhq.selenium:selenium-chrome-driver']
|
||||
testCompile deps['org.seleniumhq.selenium:selenium-java']
|
||||
testCompile deps['org.seleniumhq.selenium:selenium-remote-driver']
|
||||
maybeRuntime deps['org.slf4j:slf4j-api']
|
||||
maybeRuntime deps['org.tukaani:xz']
|
||||
maybeRuntime deps['org.xerial.snappy:snappy-java']
|
||||
|
@ -461,6 +466,11 @@ task stylesheetsToJavascript {
|
|||
sourceFiles << (cssSourceDir + "/" + it.name)
|
||||
}
|
||||
}
|
||||
|
||||
// The css files have to be passed to the compiler in alphabetic order to
|
||||
// avoid some flaky style issues
|
||||
sourceFiles.sort()
|
||||
|
||||
cssCompile("${outputDir}/registrar_bin", false, sourceFiles)
|
||||
cssCompile("${outputDir}/registrar_dbg", true, sourceFiles)
|
||||
}
|
||||
|
@ -485,13 +495,15 @@ task compileProdJS(type: JavaExec) {
|
|||
// compilation options
|
||||
closureArgs << "--compilation_level=ADVANCED"
|
||||
closureArgs << "--entry_point=goog:registry.registrar.main"
|
||||
closureArgs << "--externs=${javaDir}/google/registry/ui/externs/json.js"
|
||||
closureArgs << "--generate_exports"
|
||||
|
||||
// manually include all the required js files
|
||||
closureArgs << "--js=${rootDir}/node_modules/google-closure-library/**.js"
|
||||
closureArgs << "--js=${rootDir}/node_modules/soyutils_usegoog.js"
|
||||
closureArgs << "--js=${resourcesDir}/google/registry/ui/css/registrar_bin.css.js"
|
||||
closureArgs << "--js=${javaDir}/google/registry/ui/js/**.js"
|
||||
// TODO(shicong) Verify the compiled JS file works in Alpha
|
||||
closureArgs << "--js=${javaDir}/google/registry/ui/externs/json.js"
|
||||
closureArgs << "--js=${generatedDir}/google/registry/ui/soy/**.js"
|
||||
args closureArgs
|
||||
}
|
||||
|
@ -543,11 +555,42 @@ task outcastTest(type: Test) {
|
|||
maxParallelForks 5
|
||||
}
|
||||
|
||||
import org.apache.tools.ant.taskdefs.condition.Os
|
||||
import java.nio.file.Files
|
||||
import java.nio.file.Paths
|
||||
ext.getChromedriver = {
|
||||
def chromedriverZipFileName
|
||||
if (Os.isFamily(Os.FAMILY_UNIX)) {
|
||||
chromedriverZipFileName = 'chromedriver_linux64.zip'
|
||||
} else if (Os.isFamily(Os.FAMILY_MAC)) {
|
||||
chromedriverZipFileName = 'chromedriver_mac64.zip'
|
||||
} else if (Os.isFamily(Os.FAMILY_WINDOWS)) {
|
||||
chromedriverZipFileName = 'chromedriver_win32.zip'
|
||||
} else {
|
||||
throw new RuntimeException("Unsupported OS: ${OperatingSystem.getDisplayName()}")
|
||||
}
|
||||
|
||||
def tempDir = Files.createTempDirectory("chromedriver-dir").toString()
|
||||
|
||||
ant.get(src: 'https://chromedriver.storage.googleapis.com/LATEST_RELEASE', dest: tempDir)
|
||||
def latestReleaseVersion = Paths.get(tempDir, 'LATEST_RELEASE').readLines().get(0)
|
||||
ant.get(src: "https://chromedriver.storage.googleapis.com/${latestReleaseVersion}/${chromedriverZipFileName}", dest: tempDir)
|
||||
ant.unzip(src: "${tempDir}/${chromedriverZipFileName}", dest: tempDir)
|
||||
|
||||
def chromedriverFile = new File(tempDir, 'chromedriver')
|
||||
chromedriverFile.setExecutable(true)
|
||||
|
||||
return chromedriverFile.getCanonicalPath()
|
||||
}
|
||||
|
||||
test {
|
||||
// Common exclude pattern. See README in parent directory for explanation.
|
||||
exclude "**/*TestCase.*", "**/*TestSuite.*"
|
||||
exclude fragileTestPatterns
|
||||
exclude outcastTestPatterns
|
||||
if (rootProject.hasProperty("excludeWebDriverTests")) {
|
||||
exclude "**/webdriver/*"
|
||||
}
|
||||
|
||||
// Run every test class in its own process.
|
||||
// Uncomment to unblock build while troubleshooting inexplicable test errors.
|
||||
|
@ -556,6 +599,10 @@ test {
|
|||
|
||||
// Sets the maximum number of test executors that may exist at the same time.
|
||||
maxParallelForks 5
|
||||
|
||||
// Set system property for Webdriver
|
||||
systemProperty 'webdriver.chrome.driver', project.getChromedriver()
|
||||
|
||||
}.dependsOn(fragileTest, outcastTest)
|
||||
|
||||
task nomulus(type: Jar) {
|
||||
|
|
|
@ -107,8 +107,9 @@ com.googlecode.java-diff-utils:diffutils:1.3.0
|
|||
com.googlecode.json-simple:json-simple:1.1.1
|
||||
com.ibm.icu:icu4j:57.1
|
||||
com.jcraft:jsch:0.1.53
|
||||
com.squareup.okhttp3:okhttp:3.11.0
|
||||
com.squareup.okhttp:okhttp:2.5.0
|
||||
com.squareup.okio:okio:1.6.0
|
||||
com.squareup.okio:okio:1.14.0
|
||||
com.thoughtworks.paranamer:paranamer:2.7
|
||||
commons-codec:commons-codec:1.10
|
||||
commons-logging:commons-logging:1.2
|
||||
|
@ -151,6 +152,7 @@ javax.xml.bind:jaxb-api:2.3.0
|
|||
jline:jline:1.0
|
||||
joda-time:joda-time:2.9.2
|
||||
junit:junit:4.12
|
||||
net.bytebuddy:byte-buddy:1.8.15
|
||||
org.apache.avro:avro:1.8.2
|
||||
org.apache.beam:beam-runners-direct-java:2.2.0
|
||||
org.apache.beam:beam-runners-google-cloud-dataflow-java:2.1.0
|
||||
|
@ -160,6 +162,9 @@ org.apache.beam:beam-sdks-java-extensions-google-cloud-platform-core:2.2.0
|
|||
org.apache.beam:beam-sdks-java-extensions-protobuf:2.2.0
|
||||
org.apache.beam:beam-sdks-java-io-google-cloud-platform:2.2.0
|
||||
org.apache.commons:commons-compress:1.8.1
|
||||
org.apache.commons:commons-exec:1.3
|
||||
org.apache.commons:commons-lang3:3.8.1
|
||||
org.apache.commons:commons-text:1.6
|
||||
org.apache.ftpserver:ftplet-api:1.0.6
|
||||
org.apache.ftpserver:ftpserver-core:1.0.6
|
||||
org.apache.httpcomponents:httpclient:4.5.5
|
||||
|
@ -194,6 +199,16 @@ org.ow2.asm:asm-commons:6.0
|
|||
org.ow2.asm:asm-tree:6.0
|
||||
org.ow2.asm:asm-util:6.0
|
||||
org.ow2.asm:asm:6.0
|
||||
org.seleniumhq.selenium:selenium-api:3.141.59
|
||||
org.seleniumhq.selenium:selenium-chrome-driver:3.141.59
|
||||
org.seleniumhq.selenium:selenium-edge-driver:3.141.59
|
||||
org.seleniumhq.selenium:selenium-firefox-driver:3.141.59
|
||||
org.seleniumhq.selenium:selenium-ie-driver:3.141.59
|
||||
org.seleniumhq.selenium:selenium-java:3.141.59
|
||||
org.seleniumhq.selenium:selenium-opera-driver:3.141.59
|
||||
org.seleniumhq.selenium:selenium-remote-driver:3.141.59
|
||||
org.seleniumhq.selenium:selenium-safari-driver:3.141.59
|
||||
org.seleniumhq.selenium:selenium-support:3.141.59
|
||||
org.slf4j:slf4j-api:1.7.25
|
||||
org.threeten:threetenbp:1.3.3
|
||||
org.tukaani:xz:1.5
|
||||
|
|
|
@ -106,6 +106,8 @@ com.googlecode.java-diff-utils:diffutils:1.3.0
|
|||
com.googlecode.json-simple:json-simple:1.1.1
|
||||
com.ibm.icu:icu4j:57.1
|
||||
com.jcraft:jsch:0.1.53
|
||||
com.squareup.okhttp3:okhttp:3.11.0
|
||||
com.squareup.okio:okio:1.14.0
|
||||
com.thoughtworks.paranamer:paranamer:2.7
|
||||
commons-codec:commons-codec:1.10
|
||||
commons-logging:commons-logging:1.2
|
||||
|
@ -145,6 +147,7 @@ javax.xml.bind:jaxb-api:2.3.0
|
|||
jline:jline:1.0
|
||||
joda-time:joda-time:2.9.2
|
||||
junit:junit:4.12
|
||||
net.bytebuddy:byte-buddy:1.8.15
|
||||
org.apache.avro:avro:1.8.2
|
||||
org.apache.beam:beam-runners-direct-java:2.2.0
|
||||
org.apache.beam:beam-runners-google-cloud-dataflow-java:2.1.0
|
||||
|
@ -154,6 +157,9 @@ org.apache.beam:beam-sdks-java-extensions-google-cloud-platform-core:2.2.0
|
|||
org.apache.beam:beam-sdks-java-extensions-protobuf:2.2.0
|
||||
org.apache.beam:beam-sdks-java-io-google-cloud-platform:2.2.0
|
||||
org.apache.commons:commons-compress:1.8.1
|
||||
org.apache.commons:commons-exec:1.3
|
||||
org.apache.commons:commons-lang3:3.8.1
|
||||
org.apache.commons:commons-text:1.6
|
||||
org.apache.ftpserver:ftplet-api:1.0.6
|
||||
org.apache.ftpserver:ftpserver-core:1.0.6
|
||||
org.apache.httpcomponents:httpclient:4.5.5
|
||||
|
@ -188,6 +194,16 @@ org.ow2.asm:asm-commons:6.0
|
|||
org.ow2.asm:asm-tree:6.0
|
||||
org.ow2.asm:asm-util:6.0
|
||||
org.ow2.asm:asm:6.0
|
||||
org.seleniumhq.selenium:selenium-api:3.141.59
|
||||
org.seleniumhq.selenium:selenium-chrome-driver:3.141.59
|
||||
org.seleniumhq.selenium:selenium-edge-driver:3.141.59
|
||||
org.seleniumhq.selenium:selenium-firefox-driver:3.141.59
|
||||
org.seleniumhq.selenium:selenium-ie-driver:3.141.59
|
||||
org.seleniumhq.selenium:selenium-java:3.141.59
|
||||
org.seleniumhq.selenium:selenium-opera-driver:3.141.59
|
||||
org.seleniumhq.selenium:selenium-remote-driver:3.141.59
|
||||
org.seleniumhq.selenium:selenium-safari-driver:3.141.59
|
||||
org.seleniumhq.selenium:selenium-support:3.141.59
|
||||
org.slf4j:slf4j-api:1.7.25
|
||||
org.threeten:threetenbp:1.3.3
|
||||
org.tukaani:xz:1.5
|
||||
|
|
|
@ -108,8 +108,9 @@ com.googlecode.java-diff-utils:diffutils:1.3.0
|
|||
com.googlecode.json-simple:json-simple:1.1.1
|
||||
com.ibm.icu:icu4j:57.1
|
||||
com.jcraft:jsch:0.1.53
|
||||
com.squareup.okhttp3:okhttp:3.11.0
|
||||
com.squareup.okhttp:okhttp:2.5.0
|
||||
com.squareup.okio:okio:1.6.0
|
||||
com.squareup.okio:okio:1.14.0
|
||||
com.sun.istack:istack-commons-runtime:3.0.5
|
||||
com.sun.xml.fastinfoset:FastInfoset:1.2.13
|
||||
com.thoughtworks.paranamer:paranamer:2.7
|
||||
|
@ -154,6 +155,7 @@ javax.xml.bind:jaxb-api:2.3.0
|
|||
jline:jline:1.0
|
||||
joda-time:joda-time:2.9.2
|
||||
junit:junit:4.12
|
||||
net.bytebuddy:byte-buddy:1.8.15
|
||||
org.apache.avro:avro:1.8.2
|
||||
org.apache.beam:beam-runners-direct-java:2.2.0
|
||||
org.apache.beam:beam-runners-google-cloud-dataflow-java:2.1.0
|
||||
|
@ -163,6 +165,9 @@ org.apache.beam:beam-sdks-java-extensions-google-cloud-platform-core:2.2.0
|
|||
org.apache.beam:beam-sdks-java-extensions-protobuf:2.2.0
|
||||
org.apache.beam:beam-sdks-java-io-google-cloud-platform:2.2.0
|
||||
org.apache.commons:commons-compress:1.8.1
|
||||
org.apache.commons:commons-exec:1.3
|
||||
org.apache.commons:commons-lang3:3.8.1
|
||||
org.apache.commons:commons-text:1.6
|
||||
org.apache.ftpserver:ftplet-api:1.0.6
|
||||
org.apache.ftpserver:ftpserver-core:1.0.6
|
||||
org.apache.httpcomponents:httpclient:4.5.5
|
||||
|
@ -201,6 +206,16 @@ org.ow2.asm:asm-commons:6.0
|
|||
org.ow2.asm:asm-tree:6.0
|
||||
org.ow2.asm:asm-util:6.0
|
||||
org.ow2.asm:asm:6.0
|
||||
org.seleniumhq.selenium:selenium-api:3.141.59
|
||||
org.seleniumhq.selenium:selenium-chrome-driver:3.141.59
|
||||
org.seleniumhq.selenium:selenium-edge-driver:3.141.59
|
||||
org.seleniumhq.selenium:selenium-firefox-driver:3.141.59
|
||||
org.seleniumhq.selenium:selenium-ie-driver:3.141.59
|
||||
org.seleniumhq.selenium:selenium-java:3.141.59
|
||||
org.seleniumhq.selenium:selenium-opera-driver:3.141.59
|
||||
org.seleniumhq.selenium:selenium-remote-driver:3.141.59
|
||||
org.seleniumhq.selenium:selenium-safari-driver:3.141.59
|
||||
org.seleniumhq.selenium:selenium-support:3.141.59
|
||||
org.slf4j:slf4j-api:1.7.25
|
||||
org.threeten:threetenbp:1.3.3
|
||||
org.tukaani:xz:1.5
|
||||
|
|
|
@ -108,8 +108,9 @@ com.googlecode.java-diff-utils:diffutils:1.3.0
|
|||
com.googlecode.json-simple:json-simple:1.1.1
|
||||
com.ibm.icu:icu4j:57.1
|
||||
com.jcraft:jsch:0.1.53
|
||||
com.squareup.okhttp3:okhttp:3.11.0
|
||||
com.squareup.okhttp:okhttp:2.5.0
|
||||
com.squareup.okio:okio:1.6.0
|
||||
com.squareup.okio:okio:1.14.0
|
||||
com.sun.istack:istack-commons-runtime:3.0.5
|
||||
com.sun.xml.fastinfoset:FastInfoset:1.2.13
|
||||
com.thoughtworks.paranamer:paranamer:2.7
|
||||
|
@ -154,6 +155,7 @@ javax.xml.bind:jaxb-api:2.3.0
|
|||
jline:jline:1.0
|
||||
joda-time:joda-time:2.9.2
|
||||
junit:junit:4.12
|
||||
net.bytebuddy:byte-buddy:1.8.15
|
||||
org.apache.avro:avro:1.8.2
|
||||
org.apache.beam:beam-runners-direct-java:2.2.0
|
||||
org.apache.beam:beam-runners-google-cloud-dataflow-java:2.1.0
|
||||
|
@ -163,6 +165,9 @@ org.apache.beam:beam-sdks-java-extensions-google-cloud-platform-core:2.2.0
|
|||
org.apache.beam:beam-sdks-java-extensions-protobuf:2.2.0
|
||||
org.apache.beam:beam-sdks-java-io-google-cloud-platform:2.2.0
|
||||
org.apache.commons:commons-compress:1.8.1
|
||||
org.apache.commons:commons-exec:1.3
|
||||
org.apache.commons:commons-lang3:3.8.1
|
||||
org.apache.commons:commons-text:1.6
|
||||
org.apache.ftpserver:ftplet-api:1.0.6
|
||||
org.apache.ftpserver:ftpserver-core:1.0.6
|
||||
org.apache.httpcomponents:httpclient:4.5.5
|
||||
|
@ -201,6 +206,16 @@ org.ow2.asm:asm-commons:6.0
|
|||
org.ow2.asm:asm-tree:6.0
|
||||
org.ow2.asm:asm-util:6.0
|
||||
org.ow2.asm:asm:6.0
|
||||
org.seleniumhq.selenium:selenium-api:3.141.59
|
||||
org.seleniumhq.selenium:selenium-chrome-driver:3.141.59
|
||||
org.seleniumhq.selenium:selenium-edge-driver:3.141.59
|
||||
org.seleniumhq.selenium:selenium-firefox-driver:3.141.59
|
||||
org.seleniumhq.selenium:selenium-ie-driver:3.141.59
|
||||
org.seleniumhq.selenium:selenium-java:3.141.59
|
||||
org.seleniumhq.selenium:selenium-opera-driver:3.141.59
|
||||
org.seleniumhq.selenium:selenium-remote-driver:3.141.59
|
||||
org.seleniumhq.selenium:selenium-safari-driver:3.141.59
|
||||
org.seleniumhq.selenium:selenium-support:3.141.59
|
||||
org.slf4j:slf4j-api:1.7.25
|
||||
org.threeten:threetenbp:1.3.3
|
||||
org.tukaani:xz:1.5
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue