Last active
December 20, 2015 23:38
-
-
Save aweigold/6213514 to your computer and use it in GitHub Desktop.
Running custom builds for IntelliJ JUnit runner
http://www.adamweigold.com/2013/08/intellij-idea-junit-running-and-non.html IntelliJ Idea provides some really awesome JUnit runners that allow you to right click test methods, classes, and packages, and quickly run/debug them. The default JUnit configuration runs Idea's "Make" prior to running you…
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
apply plugin: 'idea' | |
idea { | |
project { | |
ipr.withXml { | |
// Create a task to run gradle testClasses, which we will subsequiently bind to Default JUnit runner to | |
def runConfigComp = it.node.appendNode('component') | |
def runOpts = [ | |
"default": "false", | |
"name": "testClasses for JUnit", | |
"type": "GroovyScriptRunConfiguration", | |
"factoryName": "Groovy" | |
] | |
def testClassesConfigurationNode = runConfigComp.appendNode('configuration', runOpts) | |
testClassesConfigurationNode.appendNode("setting", [name: "path", value: 'file://$PROJECT_DIR$/build.gradle']) | |
testClassesConfigurationNode.appendNode("setting", [name: "params", value: "testClasses"]) | |
testClassesConfigurationNode.appendNode("setting", [name: "workDir", value: 'file://$PROJECT_DIR$']) | |
testClassesConfigurationNode.appendNode("setting", [name: "debug", value: "false"]) | |
testClassesConfigurationNode.appendNode("RunnerSettings", [RunnerId: 'Run']) | |
testClassesConfigurationNode.appendNode("ConfigurationWrapper", [RunnerId: 'Run']) | |
testClassesConfigurationNode.appendNode("method").appendNode("option", [name: "Make", enabled: "false"]) | |
// Updates default JUnit settings, adding UseSplitVerifier, and swapping Make with testClasses | |
runOpts = [ | |
"default": "true", | |
"name": "JUnit", | |
"type": "JUnit", | |
"factoryName": "JUnit" | |
] | |
def jUnitConfigurationNode = runConfigComp.appendNode('configuration', runOpts) | |
jUnitConfigurationNode.appendNode("extension", [ | |
name: "coverage", | |
enabled: "false", | |
merge: "false", | |
runner: "idea" | |
]) | |
jUnitConfigurationNode.appendNode("option", [name: "TEST_OBJECT", value: "class"]) | |
jUnitConfigurationNode.appendNode("option", [name: "VM_PARAMETERS", value: "-ea -XX:-UseSplitVerifier -XX:MaxPermSize=2048m"]) | |
jUnitConfigurationNode.appendNode("option", [name: "WORKING_DIRECTORY", value: 'file://$MODULE_DIR$']) | |
jUnitConfigurationNode.appendNode("option", [name: "PASS_PARENT_ENVS", value: "true"]) | |
jUnitConfigurationNode.appendNode("option", [name: "TEST_SEARCH_SCOPE"]).appendNode("value", [defaultName: "moduleWithDependencies"]) | |
def jUnitMethodNode = jUnitConfigurationNode.appendNode("method") | |
jUnitMethodNode.appendNode("option", [name: "Make", enabled: "false"]) | |
jUnitMethodNode.appendNode("option", [name: "RunConfigurationTask", enabled: "true", run_configuration_name: "testClasses for JUnit", run_configuration_type: "GroovyScriptRunConfiguration"]) | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment