| // Based on tests.gant but with the includeTargets of common_tests inlined |
| // below (and with some changes to invoke our GUI test suite instead |
| import static org.jetbrains.jps.idea.IdeaProjectLoader.guessHome |
| |
| includeTargets << new File("${guessHome(this)}/build/scripts/utils.gant") |
| |
| requireProperty("out", "$home/out") |
| |
| target(check: "Ensure the environment is configured") { |
| tempDir = p("teamcity.build.tempDir") |
| } |
| |
| target(compile: "Compile project") { |
| ant.delete(failonerror: false) { |
| fileset(dir: "$home/reports") |
| fileset(dir: "$home/bin", includes: "*.hprof") |
| } |
| |
| loadProject() |
| projectBuilder.targetFolder = out |
| if (!isDefined("skip_build")) { |
| projectBuilder.cleanOutput() |
| projectBuilder.buildAll() |
| } |
| } |
| |
| private pass(String prop) { |
| if (isDefined(prop)) { |
| ant.jvmarg(value: "-D$prop=${p(prop)}") |
| } |
| } |
| |
| target('run_ui_tests': 'Run java tests') { |
| depends([check, compile]) |
| |
| ant.junit(fork: "yes", showoutput: "true", logfailedtests:false, printsummary: "true") { |
| pass("idea.test.group") |
| pass("idea.test.patterns") |
| pass("idea.fast.only") |
| pass("teamcity.build.tempDir") |
| pass("teamcity.tests.recentlyFailedTests.file") |
| |
| System.getProperties().entrySet().each { |
| if (it.key.startsWith("pass.")) { |
| def trimmed = it.key.substring("pass.".length()); |
| jvmarg(value: "-D${trimmed}=${it.value}"); |
| }; |
| } |
| |
| commonJvmArgs().each { jvmarg(value: it) } |
| |
| if (isDefined("jvm_args")) { |
| jvm_args.each { jvmarg(value: it) } |
| } |
| |
| classpath { |
| projectBuilder.moduleRuntimeClasspath(findModule("community-main"), true).each { |
| pathelement(location: it) |
| } |
| pathelement(location: "${jdkHome}/lib/tools.jar") |
| } |
| |
| formatter(type: "plain") |
| formatter(type: "xml") |
| |
| testcases.each { |
| test (name: it) |
| } |
| } |
| } |
| |
| target('default' : "Run all UI tests") { |
| depends([compile, run_ui_tests]) |
| depends([run_ui_tests]) |
| } |
| |
| // To run just your own tests, you can for example write |
| //setProperty("testcases", ["com.android.tools.idea.tests.gui.layout.LayoutPreviewTest","com.android.tools.idea.tests.gui.layout.LayoutEditorTest"]) |
| setProperty("testcases", ["com.android.tools.idea.tests.gui.GuiTestSuite"]) |
| |
| def args = [ |
| "-Xmx2048m", |
| "-XX:MaxPermSize=1024m", |
| "-XX:ReservedCodeCacheSize=96m", |
| "-XX:+UseCodeCacheFlushing" |
| ] |
| |
| setProperty("jvm_args", args) |