Copyright © DeNA Co.,Ltd. All Rights Reserved.
9 3 19 8 (
) ( 0
CDE
2 .3 A
1 , # / #
Copyright © DeNA Co.,Ltd. All Rights Reserved.
n
•
• 8
• 2 3
Copyright © DeNA Co.,Ltd. All Rights Reserved.
n S
n P
-1 1F
0D D: 1 K Y P
8 1 : D 2D
1 D
I D2 , G D 2D 1 . D
/ 1 H
Copyright © DeNA Co.,Ltd. All Rights Reserved.
Copyright © DeNA Co.,Ltd. All Rights Reserved.
Copyright © DeNA Co.,Ltd. All Rights Reserved.
. ( ) .
./gradlew uploadArchives
Copyright © DeNA Co.,Ltd. All Rights Reserved.
. ( ) .
./gradlew helloWorld ¥
--refresh-dependencies
Copyright © DeNA Co.,Ltd. All Rights Reserved.
. ( ) .
Assemble
Copyright © DeNA Co.,Ltd. All Rights Reserved.
. ( ) .
Copyright © DeNA Co.,Ltd. All Rights Reserved.
. ( ) .
Copyright © DeNA Co.,Ltd. All Rights Reserved.
Copyright © DeNA Co.,Ltd. All Rights Reserved.
( )
Copyright © DeNA Co.,Ltd. All Rights Reserved.
. ( ) .
( )
./gradlew install
Copyright © DeNA Co.,Ltd. All Rights Reserved.
. ( ) .
( )
./gradlew helloWorld
Copyright © DeNA Co.,Ltd. All Rights Reserved.
. ( ) .
)
Maven
( (
Copyright © DeNA Co.,Ltd. All Rights Reserved.
. ( ) .
) (
Assemble
)
Copyright © DeNA Co.,Ltd. All Rights Reserved.
. ( ) .
(
)
Copyright © DeNA Co.,Ltd. All Rights Reserved.
( )
Copyright © DeNA Co.,Ltd. All Rights Reserved.
Copyright © DeNA Co.,Ltd. All Rights Reserved.
Copyright © DeNA Co.,Ltd. All Rights Reserved.
dependencies {
testImplementation gradleTestKit()
}
Copyright © DeNA Co.,Ltd. All Rights Reserved.
Copyright © DeNA Co.,Ltd. All Rights Reserved.
G I
# : .2 / - - - - - -
1 .8- 0: . / 8:0 - ::/ /:0 2./ / 2 1
/ 2 - 1 2 /- 28
Copyright © DeNA Co.,Ltd. All Rights Reserved.
when:
def result = GradleRunner.create()
.withProjectDir(testProjectDir)
.withArguments(“helloWorld”)
.build()
then:
result.output.contains(‘Hello world!’)
result.task(“:helloWorld”).outcome == SUCCESS
) / ( (
Copyright © DeNA Co.,Ltd. All Rights Reserved.
when:
def result = GradleRunner.create()
.withProjectDir(testProjectDir)
.withArguments(“helloWorld”)
.build()
then:
result.output.contains(‘Hello world!’)
result.task(“:helloWorld”).outcome == SUCCESS
) / ( (
.
Copyright © DeNA Co.,Ltd. All Rights Reserved.
when:
def result = GradleRunner.create()
.withProjectDir(testProjectDir)
.withArguments(“helloWorld”)
.build()
then:
result.output.contains(‘Hello world!’)
result.task(“:helloWorld”).outcome == SUCCESS
) / ( (
./gradlew helloWorld
Copyright © DeNA Co.,Ltd. All Rights Reserved.
when:
def result = GradleRunner.create()
.withProjectDir(testProjectDir)
.withArguments(“helloWorld”)
.build()
then:
result.output.contains(‘Hello world!’)
result.task(“:helloWorld”).outcome == SUCCESS
) / ( (
Copyright © DeNA Co.,Ltd. All Rights Reserved.
when:
def result = GradleRunner.create()
.withProjectDir(testProjectDir)
.withArguments(“helloWorld”)
.build()
then:
result.output.contains(‘Hello world!’)
result.task(“:helloWorld”).outcome == SUCCESS
) / ( (
Copyright © DeNA Co.,Ltd. All Rights Reserved.
./gradlew test
Copyright © DeNA Co.,Ltd. All Rights Reserved.
when:
def result = GradleRunner.create()
.withProjectDir(testProjectDir)
.withArguments(“helloWorld”)
.withGradleVersion(version)
.build()
where:
version | _
“4.1” | _
“3.3” | _
...
“2.13” | _
Copyright © DeNA Co.,Ltd. All Rights Reserved.
. -
6 4 /2 3 / 153 / 4 4 /2 3 / 153 2/3 / /2 3 /3
6 4 /2 3 / 153 / 4 4 /2 3 / 153 2/3 / /2 3 /3
6 4 /2 3 / 153 / 4 4 /2 3 / 153 2/3 / /2 3 /3
6 4 /2 3 / 153 / 4 4 /2 3 / 153 2/3 / /2 3 /3
6 4 /2 3 / 153 / 4 4 /2 3 / 153 2/3 / /2 3 /3
3 /43 A
Copyright © DeNA Co.,Ltd. All Rights Reserved.
. -
6 4 /2 3 / 153 / 4 4 /2 3 / 153 2/3 / /2 3 /3
6 4 /2 3 / 153 / 4 4 /2 3 / 153 2/3 / /2 3 /3
6 4 /2 3 / 153 / 4 4 /2 3 / 153 2/3 / /2 3 /3
6 4 /2 3 / 153 / 4 4 /2 3 / 153 2/3 / /2 3 /3
6 4 /2 3 / 153 / 4 4 /2 3 / 153 2/3 / /2 3 /3
3 /43 A
C ON M G D
Copyright © DeNA Co.,Ltd. All Rights Reserved.
when:
def result = GradleRunner.create()
.withProjectDir(testProjectDir)
.withArguments(“helloWorld”, “--no-daemon”)
.withGradleVersion(version)
.build()
. -
Copyright © DeNA Co.,Ltd. All Rights Reserved.
when:
def result = GradleRunner.create()
.withProjectDir(testProjectDir)
.withArguments(“helloWorld”)
.withGradleVersion(version)
.withDebug(true)
.build()
Copyright © DeNA Co.,Ltd. All Rights Reserved.
( )
Java (Gradle Daemon) D
Copyright © DeNA Co.,Ltd. All Rights Reserved.
( ) ( ) .
n 33 R
. - 1 - 3 - / / . 21 /
2 / /1/ :
#
Copyright © DeNA Co.,Ltd. All Rights Reserved.
n . ) (
A D E
Copyright © DeNA Co.,Ltd. All Rights Reserved.
n S KS R G D
n ( T G
n ( (
n . )

テストを書いてGradleプラグインの開発効率を改善しよう

  • 1.
    Copyright © DeNACo.,Ltd. All Rights Reserved. 9 3 19 8 ( ) ( 0 CDE 2 .3 A 1 , # / #
  • 2.
    Copyright © DeNACo.,Ltd. All Rights Reserved. n • • 8 • 2 3
  • 3.
    Copyright © DeNACo.,Ltd. All Rights Reserved. n S n P -1 1F 0D D: 1 K Y P 8 1 : D 2D 1 D I D2 , G D 2D 1 . D / 1 H
  • 4.
    Copyright © DeNACo.,Ltd. All Rights Reserved.
  • 5.
    Copyright © DeNACo.,Ltd. All Rights Reserved.
  • 6.
    Copyright © DeNACo.,Ltd. All Rights Reserved. . ( ) . ./gradlew uploadArchives
  • 7.
    Copyright © DeNACo.,Ltd. All Rights Reserved. . ( ) . ./gradlew helloWorld ¥ --refresh-dependencies
  • 8.
    Copyright © DeNACo.,Ltd. All Rights Reserved. . ( ) . Assemble
  • 9.
    Copyright © DeNACo.,Ltd. All Rights Reserved. . ( ) .
  • 10.
    Copyright © DeNACo.,Ltd. All Rights Reserved. . ( ) .
  • 11.
    Copyright © DeNACo.,Ltd. All Rights Reserved.
  • 12.
    Copyright © DeNACo.,Ltd. All Rights Reserved. ( )
  • 13.
    Copyright © DeNACo.,Ltd. All Rights Reserved. . ( ) . ( ) ./gradlew install
  • 14.
    Copyright © DeNACo.,Ltd. All Rights Reserved. . ( ) . ( ) ./gradlew helloWorld
  • 15.
    Copyright © DeNACo.,Ltd. All Rights Reserved. . ( ) . ) Maven ( (
  • 16.
    Copyright © DeNACo.,Ltd. All Rights Reserved. . ( ) . ) ( Assemble )
  • 17.
    Copyright © DeNACo.,Ltd. All Rights Reserved. . ( ) . ( )
  • 18.
    Copyright © DeNACo.,Ltd. All Rights Reserved. ( )
  • 19.
    Copyright © DeNACo.,Ltd. All Rights Reserved.
  • 20.
    Copyright © DeNACo.,Ltd. All Rights Reserved.
  • 21.
    Copyright © DeNACo.,Ltd. All Rights Reserved. dependencies { testImplementation gradleTestKit() }
  • 22.
    Copyright © DeNACo.,Ltd. All Rights Reserved.
  • 23.
    Copyright © DeNACo.,Ltd. All Rights Reserved. G I # : .2 / - - - - - - 1 .8- 0: . / 8:0 - ::/ /:0 2./ / 2 1 / 2 - 1 2 /- 28
  • 24.
    Copyright © DeNACo.,Ltd. All Rights Reserved. when: def result = GradleRunner.create() .withProjectDir(testProjectDir) .withArguments(“helloWorld”) .build() then: result.output.contains(‘Hello world!’) result.task(“:helloWorld”).outcome == SUCCESS ) / ( (
  • 25.
    Copyright © DeNACo.,Ltd. All Rights Reserved. when: def result = GradleRunner.create() .withProjectDir(testProjectDir) .withArguments(“helloWorld”) .build() then: result.output.contains(‘Hello world!’) result.task(“:helloWorld”).outcome == SUCCESS ) / ( ( .
  • 26.
    Copyright © DeNACo.,Ltd. All Rights Reserved. when: def result = GradleRunner.create() .withProjectDir(testProjectDir) .withArguments(“helloWorld”) .build() then: result.output.contains(‘Hello world!’) result.task(“:helloWorld”).outcome == SUCCESS ) / ( ( ./gradlew helloWorld
  • 27.
    Copyright © DeNACo.,Ltd. All Rights Reserved. when: def result = GradleRunner.create() .withProjectDir(testProjectDir) .withArguments(“helloWorld”) .build() then: result.output.contains(‘Hello world!’) result.task(“:helloWorld”).outcome == SUCCESS ) / ( (
  • 28.
    Copyright © DeNACo.,Ltd. All Rights Reserved. when: def result = GradleRunner.create() .withProjectDir(testProjectDir) .withArguments(“helloWorld”) .build() then: result.output.contains(‘Hello world!’) result.task(“:helloWorld”).outcome == SUCCESS ) / ( (
  • 29.
    Copyright © DeNACo.,Ltd. All Rights Reserved. ./gradlew test
  • 30.
    Copyright © DeNACo.,Ltd. All Rights Reserved. when: def result = GradleRunner.create() .withProjectDir(testProjectDir) .withArguments(“helloWorld”) .withGradleVersion(version) .build() where: version | _ “4.1” | _ “3.3” | _ ... “2.13” | _
  • 31.
    Copyright © DeNACo.,Ltd. All Rights Reserved. . - 6 4 /2 3 / 153 / 4 4 /2 3 / 153 2/3 / /2 3 /3 6 4 /2 3 / 153 / 4 4 /2 3 / 153 2/3 / /2 3 /3 6 4 /2 3 / 153 / 4 4 /2 3 / 153 2/3 / /2 3 /3 6 4 /2 3 / 153 / 4 4 /2 3 / 153 2/3 / /2 3 /3 6 4 /2 3 / 153 / 4 4 /2 3 / 153 2/3 / /2 3 /3 3 /43 A
  • 32.
    Copyright © DeNACo.,Ltd. All Rights Reserved. . - 6 4 /2 3 / 153 / 4 4 /2 3 / 153 2/3 / /2 3 /3 6 4 /2 3 / 153 / 4 4 /2 3 / 153 2/3 / /2 3 /3 6 4 /2 3 / 153 / 4 4 /2 3 / 153 2/3 / /2 3 /3 6 4 /2 3 / 153 / 4 4 /2 3 / 153 2/3 / /2 3 /3 6 4 /2 3 / 153 / 4 4 /2 3 / 153 2/3 / /2 3 /3 3 /43 A C ON M G D
  • 33.
    Copyright © DeNACo.,Ltd. All Rights Reserved. when: def result = GradleRunner.create() .withProjectDir(testProjectDir) .withArguments(“helloWorld”, “--no-daemon”) .withGradleVersion(version) .build() . -
  • 34.
    Copyright © DeNACo.,Ltd. All Rights Reserved. when: def result = GradleRunner.create() .withProjectDir(testProjectDir) .withArguments(“helloWorld”) .withGradleVersion(version) .withDebug(true) .build()
  • 35.
    Copyright © DeNACo.,Ltd. All Rights Reserved. ( ) Java (Gradle Daemon) D
  • 36.
    Copyright © DeNACo.,Ltd. All Rights Reserved. ( ) ( ) . n 33 R . - 1 - 3 - / / . 21 / 2 / /1/ : #
  • 37.
    Copyright © DeNACo.,Ltd. All Rights Reserved. n . ) ( A D E
  • 38.
    Copyright © DeNACo.,Ltd. All Rights Reserved. n S KS R G D n ( T G n ( ( n . )