How can I add a Java system property during JUnit

2019-01-26 10:50发布

问题:

I need to define a system property for my JUnit tests. I've tried various steps to pass the name/value pair into gradle. (I've tried Milestone-3 and 4). None of these approaches worked:

  • defining a systemProp.foo=bar in the gradle.properties file
  • passing -Dfoo=bar at the command line
  • passing -PsystemProp.foo=bar on the command line

I don't see the additional properties from "gradle properties" though I'm not sure I should. But more importantly, I dumped the System.properties in a static initializer and the property is not there. I need to pass System properties to the running tests to tell them what environment (local, Jenkins, etc) they are running in.

回答1:

Sorry to answer my own question. Just stumbled upon the solution here:

test { systemProperties = System.properties }



回答2:

You can also define individual properties like this:

test {
  systemProperty "file", "test.story"
}

(From this answer)



标签: gradle junit