Version2 in Japanese - opengl-8080/assertjGen-gradle-plugin GitHub Wiki

ここでは、 assertjGen-gradle-plugin た version2 に぀いおたèȘŹæ˜Žă‚’èš˜èŒ‰ă—ăŸă™ă€‚
version1 に぀いおは Version1 in Japanese を揂照しどください。

Version1 べぼ違い

Version1 は、 AssertJ Assertions Generator ăŒæäŸ›ă—ăŠă„ă‚‹ CLI 甹ぼ API ă‚’ăƒ©ăƒƒăƒ—ă—ăŸă ă‘ăźă‚·ăƒłăƒ—ăƒ«ăȘăƒ—ăƒ©ă‚°ă‚€ăƒłă§ă—ăŸă€‚
CLI た API は AssertJ Assertions Generator ăźæœ€ć°é™ăźæ©Ÿèƒœă—ă‹æäŸ›ă—ăŠă„ăȘかったため、 Version1 ăŒă‚”ăƒăƒŒăƒˆă™ă‚‹æ©Ÿèƒœă‚‚é™ă‚‰ă‚ŒăŠă„ăŸă—ăŸă€‚

侀æ–čで、 Version2 はAssertJ Assertions Generator Maven Plugin ă‚’ćźŒć…šă«ăƒ©ăƒƒăƒ—ă—ăŠă„ăŸă™ă€‚
ćŸ“ăŁăŠă€ Version2 は Maven Plugin ăšćŒç­‰ăźæ©Ÿèƒœă‚’æäŸ›ă™ă‚‹ă“ăšăŒă§ăăŸă™ă€‚

äœżă„æ–č

ă‚€ăƒłă‚čăƒˆăƒŒăƒ«æ–čæł•

Gradle - Plugin: com.github.opengl-BOBO.assertjGen2

ă“ăźăƒšăƒŒă‚žă«èš­ćźšæ–čæł•ăŒèŒ‰ăŁăŠă„ă‚‹ăźă§ă€ăăĄă‚‰ă‚’ć‚ç…§ăă ă•ă„ă€‚

これはăȘă«ïŒŸ

assertjGen タă‚čă‚Żă‚’èżœćŠ ă™ă‚‹ăƒ—ăƒ©ă‚°ă‚€ăƒłă§ă™ă€‚

こぼタă‚čクは、 AssertJ Assertions Generator ă‚’äœżç”šă—ăŠă‚ąă‚”ăƒŒă‚·ăƒ§ăƒłă‚Żăƒ©ă‚čă‚’ç”Ÿæˆă—ăŸă™ă€‚

ă‚ąă‚”ăƒŒă‚·ăƒ§ăƒłă‚Żăƒ©ă‚čăŒäœ•ăȘたかに぀いおは、ăƒȘンク慈を揂照しどいただくか、 こちらぼ Qiita ăźèš˜äș‹ を揂照しどください。

èš­ćźš

ćŸșæœŹ

build.gradle

buildscript {
    repositories {
        maven {
          url "https://plugins.gradle.org/m2/"
        }
    }
    dependencies {
        classpath "gradle.plugin.com.github.opengl-8080:assertjGen-gradle-plugin:2.0.0"
    }
}

apply plugin: "com.github.opengl-BOBO.assertjGen2"

repositories {
    mavenCentral()
}

dependencies {
    testCompile 'junit:junit:4.12'
    testCompile 'org.assertj:assertj-core:3.5.2'
}

assertjGen {
    packages = ['foo.bar']
}

ăƒ—ăƒ©ă‚°ă‚€ăƒłă‚’èȘ­ăżèŸŒă‚“で、 assertjGen ă‚’äœżăŁăŠć„çšźă‚Șăƒ—ă‚·ăƒ§ăƒłă‚’æŒ‡ćźšă—ăŠă„ăăŸă™ă€‚

Maven ăƒ—ăƒ©ă‚°ă‚€ăƒłăŒæäŸ›ă—ăŠă„ă‚‹ă‚Șăƒ—ă‚·ăƒ§ăƒł

Version2 は Maven ăƒ—ăƒ©ă‚°ă‚€ăƒłă‚’ăăźăŸăŸăƒ©ăƒƒăƒ—ă—ăŠă„ă‚‹ăźă§ă€ă‚Șăƒ—ă‚·ăƒ§ăƒłăźæŒ‡ćźšăźä»•æ–čăȘどはćŸșæœŹçš„ă«ă©ă‚Œă‚‚ Maven ăƒ—ăƒ©ă‚°ă‚€ăƒłăšćŒă˜ă§ă™ă€‚
Maven ăƒ—ăƒ©ă‚°ă‚€ăƒłăšăźć€§ăăȘé•ă„ăŻă€èš˜æł•ăŒ Gradle (Groovy) たæ–čæł•に扇っおいるずいうç‚čです。

assertjGen {
    /*
     * Assertion ă‚’äœœæˆă™ă‚‹ă‚Żăƒ©ă‚čăŒć­˜ćœšă™ă‚‹ăƒ‘ăƒƒă‚±ăƒŒă‚žă‚’ List ă§æŒ‡ćźšă™ă‚‹.
     * これか classes ăźă„ăšă‚Œă‹ăŻă€ćż…ăšæŒ‡ćźšă—ăȘければăȘらăȘい.
     */
    packages = ['foo.bar', 'fizz.buzz']

    /*
     * Assertion ă‚’äœœæˆă™ă‚‹ă‚Żăƒ©ă‚čを List ă§æŒ‡ćźšă™ă‚‹.
     * これか packages ăźă„ăšă‚Œă‹ăŻă€ćż…ăšæŒ‡ćźšă—ăȘければăȘらăȘい.
     */
    classes = ['foo.bar.SomeClass', 'fizz.buzz.AnyClass']

    /*
     * ăƒ‰ăƒĄă‚€ăƒłă‚Żăƒ©ă‚čăŒç¶™æ‰żé–ąäż‚ă‚’æŒă€ăšăă«ă€ç”Ÿæˆă™ă‚‹ Assertion ă‚Żăƒ©ă‚čă«ă‚‚ç¶™æ‰żé–ąäż‚ă‚’æŒăŸă›ă‚‹.
     * ăƒ‡ăƒ•ă‚©ăƒ«ăƒˆ true.
     */
    hierarchical = true

    /*
     * true ă‚’èš­ćźšă—ăŸć Žćˆă€ăƒ•ă‚ŁăƒŒăƒ«ăƒ‰ăźćŻèŠ–æ€§ă«é–ąäż‚ăȘăć…šăŠăźăƒ•ă‚ŁăƒŒăƒ«ăƒ‰ă§ă‚ąă‚”ăƒŒă‚·ăƒ§ăƒłă‚’ç”Ÿæˆă™ă‚‹.
     * ăƒ‡ăƒ•ă‚©ăƒ«ăƒˆăŻ false で、 public ăƒ•ă‚ŁăƒŒăƒ«ăƒ‰ăźăżă‚ąă‚”ăƒŒă‚·ăƒ§ăƒłăŒç”Ÿæˆă•ă‚Œă‚‹.
     */
    generateAssertionsForAllFields = false

    /*
     * Assertions ă‚Żăƒ©ă‚čをć‡șćŠ›ă™ă‚‹ăƒ‘ăƒƒă‚±ăƒŒă‚žă‚’æŒ‡ćźšă™ă‚‹.
     * Assertions ă‚Żăƒ©ă‚čăšăŻă€ć„ăƒ‰ăƒĄă‚€ăƒłă‚Żăƒ©ă‚čăźă‚ąă‚”ăƒŒă‚·ăƒ§ăƒłăźè”·ç‚čずăȘる static ăƒĄă‚œăƒƒăƒ‰ă‚’ăŸăšă‚ăŸă‚Żăƒ©ă‚čぼこべ.
     */
    entryPointClassPackage = 'foo.assertions'

    /*
     * Assertion ă‚Żăƒ©ă‚čă‚’ç”Ÿæˆă™ă‚‹ăƒ‰ăƒĄă‚€ăƒłă‚Żăƒ©ă‚čă‚’æ­ŁèŠèĄšçŸă§ç”žă‚ŠèŸŒă‚€.
     */
    includes = [/foo\.bar\.Fizz.*/]

    /*
     * Assertion ă‚Żăƒ©ă‚čă‚’ç”Ÿæˆă—ăȘă„ăƒ‰ăƒĄă‚€ăƒłă‚Żăƒ©ă‚čă‚’æ­ŁèŠèĄšçŸă§ç”žă‚ŠèŸŒă‚€.
     */
    excludes = [/foo\.bar\.Buzz.*/]

    /*
     * ç”Ÿæˆă•ă‚ŒăŸăƒ•ă‚Ąă‚€ăƒ«ăźć‡ș抛慈ディレクトăƒȘă‚’æŒ‡ćźšă™ă‚‹.
     * ăƒ‡ăƒ•ă‚©ăƒ«ăƒˆăŻ "${buildDir}/generated-test-sources/assertj-assertions".
     */
    targetDir = "${buildDir}/foo/bar"

    /*
     * ăƒ•ă‚Ąă‚€ăƒ«ă‚’ç”Ÿæˆă™ă‚‹ć‰ă« targetDir ă‚’ć‰Šé™€ă™ă‚‹ă‹ă©ă†ă‹ă‚’æŒ‡ćźšă™ă‚‹.
     * true ăźć ŽćˆăŻæŻŽć›ž targetDir を扊陀する.
     * ăƒ‡ăƒ•ă‚©ăƒ«ăƒˆăŻ false.
     */
    cleanTargetDir = true

    /*
     * ć„ăƒ‰ăƒĄă‚€ăƒłă‚Żăƒ©ă‚čă«ćŻŸćżœă™ă‚‹ Assert ă‚Żăƒ©ă‚čたć‡șćŠ›ć…ˆăƒ‘ăƒƒă‚±ăƒŒă‚žă‚’æŒ‡ćźšă™ă‚‹.
     * æœȘæŒ‡ćźšăźć ŽćˆăŻăƒ‰ăƒĄă‚€ăƒłă‚Żăƒ©ă‚čăšćŒă˜ăƒ‘ăƒƒă‚±ăƒŒă‚žă«ć‡ș抛される.
     */
    generateAssertionsInPackage = 'foo.my.assertions'

    /*
     * Assertions ă‚Żăƒ©ă‚čをć‡ș抛するかどうか.
     * ăƒ‡ăƒ•ă‚©ăƒ«ăƒˆăŻ true.
     */
    generateAssertions = true

    /*
     * BddAssertions ă‚Żăƒ©ă‚čをć‡ș抛するかどうか.
     * ăƒ‡ăƒ•ă‚©ăƒ«ăƒˆăŻ true.
     */
    generateBddAssertions = true

    /*
     * SoftAssertions ă‚Żăƒ©ă‚čをć‡ș抛するかどうか.
     * ăƒ‡ăƒ•ă‚©ăƒ«ăƒˆăŻ true.
     */
    generateSoftAssertions = true

    /*
     * JUnitSoftAssertions ă‚Żăƒ©ă‚čをć‡ș抛するかどうか.
     * ăƒ‡ăƒ•ă‚©ăƒ«ăƒˆăŻ true.
     */
    generateJUnitSoftAssertions = true

    /*
     * ć‡șćŠ›ă—ăŸăƒ•ă‚Ąă‚€ăƒ«ăźă‚čă‚łăƒŒăƒ—ă‚’æŒ‡ćźšă™ă‚‹.
     * 'test' ăŸăŸăŻ 'compile' ăźă„ăšă‚Œă‹ă‚’æŒ‡ćźšă™ă‚‹.
     * ăƒ‡ăƒ•ă‚©ăƒ«ăƒˆăŻ 'test'.
     * æłšïŒšă“ă“ă§ăźă‚čă‚łăƒŒăƒ—ăšăŻă€ Maven におけるă‚čă‚łăƒŒăƒ—ăźă“ăšă§ă™.
     */
    generatedSourcesScope = 'test'

    /*
     * true ă‚’èš­ćźšă™ă‚‹ăšă€ Maven ăƒ—ăƒ©ă‚°ă‚€ăƒłăŒć‡șćŠ›ă™ă‚‹ăƒ­ă‚°ă‚’èĄšç€șしăȘă„ă‚ˆă†ă«ă™ă‚‹.
     * ăƒ‡ăƒ•ă‚©ăƒ«ăƒˆăŻ false (èĄšç€șされる).
     */
    quiet = false

    /*
     * ăƒ—ăƒ©ă‚°ă‚€ăƒłăźć‹•äœœç”æžœă‚’ă€ă“ă“ă§æŒ‡ćźšă—ăŸăƒ•ă‚Ąă‚€ăƒ«ă«ăƒ†ă‚­ă‚čăƒˆćœąćŒă§ć‡ș抛する.
     * æœȘæŒ‡ćźšăźć ŽćˆăŻäœ•ă‚‚ć‡ș抛しăȘい.
     */
    writeReportInFile = "${buildDir}/report.txt"

    /*
     * true ă‚’æŒ‡ćźšă—ăŸć Žćˆă€ă“ăźăƒ—ăƒ©ă‚°ă‚€ăƒłăźć‹•äœœă‚’ă‚čă‚­ăƒƒăƒ—ă™ă‚‹ïŒˆäœ•ă‚‚ć‡ș抛しăȘくăȘă‚‹ïŒ‰.
     * ăƒ‡ăƒ•ă‚©ăƒ«ăƒˆăŻ false.
     */
    skip = false

    /*
     * ăƒ†ăƒłăƒ—ăƒŹăƒŒăƒˆăƒ•ă‚Ąă‚€ăƒ«ă‚’ć€‰æ›Žă™ă‚‹ć Žćˆă«æŒ‡ćźšă™ă‚‹.
     */
    templates {
        /*
         * ă‚«ă‚čă‚żăƒ ăźăƒ†ăƒłăƒ—ăƒŹăƒŒăƒˆăƒ•ă‚Ąă‚€ăƒ«ăŒć­˜ćœšă™ă‚‹ăƒ‡ă‚ŁăƒŹă‚ŻăƒˆăƒȘă‚’æŒ‡ćźšă™ă‚‹.
         */
        templatesDirectory = 'src/test/resources/tesmplates/'

        /*
         * ăƒ†ăƒłăƒ—ăƒŹăƒŒăƒˆăƒ•ă‚Ąă‚€ăƒ«ă”ăšă«ă€ templatesDirectory からぼパă‚čă‚’æŒ‡ćźšă™ă‚‹.
         * ここでは objectAssertion ăźăƒ†ăƒłăƒ—ăƒŹăƒŒăƒˆăƒ•ă‚Ąă‚€ăƒ«ă‚’æŒ‡ćźšă—ăŠă„ă‚‹.
         * ä»–ăźăƒ†ăƒłăƒ—ăƒŹăƒŒăƒˆă‚’ć€‰æ›Žă™ă‚‹ć ŽćˆăŻă€ăă‚Œăžă‚Œăźćć‰ă§ăƒ•ă‚Ąă‚€ăƒ«ăźăƒ‘ă‚čă‚’æŒ‡ćźšă™ă‚‹.
         * è©łçŽ°ăŻäž‹èš˜ć…ŹćŒăƒ‰ă‚­ăƒ„ăƒĄăƒłăƒˆă‚’ć‚ç…§ăźă“ăš.
         * http://joel-costigliola.github.io/assertj/assertj-assertions-generator-maven-plugin.html#custom-templates
         */
        objectAssertion = 'custom_object_assertion.txt'
    }
}

ă‚ˆă‚Šè©łçŽ°ăȘèȘŹæ˜Žă«ă€ă„ăŠăŻă€ć…ŹćŒăźăƒ‰ă‚­ăƒ„メントを揂照しどください。

Gradle ăƒ—ăƒ©ă‚°ă‚€ăƒłăŒèżœćŠ ă§æäŸ›ă—ăŠă„ă‚‹ă‚Șăƒ—ă‚·ăƒ§ăƒł

Maven ăƒ—ăƒ©ă‚°ă‚€ăƒłăŒæäŸ›ă—ăŠă„ăȘい、 Gradle ăƒ—ăƒ©ă‚°ă‚€ăƒłć›șæœ‰ăźèš­ćźšăŒäž€éƒšèżœćŠ ă•ă‚ŒăŠă„ăŸă™.

configurations

assertjGen {
    packages = ["sample"]
    configurations = ['customconfiguration']
}

configurations {
    customconfiguration {
        canBeResolved = true
    }
}

dependencies {
    customconfiguration "org.antlr:antlr4-runtime:4.7"
}

compile, testCompile 仄怖た configuration ă‚’èżœćŠ ă—ăŸă„ć Žćˆă«ă€ List ćœąćŒă§æŒ‡ćźšă—ăŸă™.
ă“ăźăšăă€èżœćŠ ăź configurations には canBeResolved = true ă‚’æŒ‡ćźšă—ăŠăă ă•ă„.

sourceSets

sourceSets {
    api.java.srcDir { "src/api/java" }
}

assertjGen {
    packages = ['sample']
    sourceSets = ['api']
}

tasks.assertjGen.dependsOn('compileApiJava')

main, test 仄怖た sourceSet ă‚’èżœćŠ ă—ăŸă„ć Žćˆă«ă€ List ćœąćŒă§æŒ‡ćźšă—ăŸă™.

こぼべき、 assertjGen タă‚čă‚ŻăŒćźŸèĄŒă•ă‚Œă‚‹ć‰ă«ćœ“è©Č sourceSet ăŒă‚łăƒłăƒ‘ă‚€ăƒ«ă•ă‚ŒăŠă„ă‚‹ćż…èŠăŒă‚ă‚ŠăŸă™.
ćŸ“ăŁăŠă€ assertjGen ăźäŸć­˜ă‚żă‚čă‚Żă«èżœćŠ ă—ăŸă„ sourceSet ăźă‚łăƒłăƒ‘ă‚€ăƒ«ă‚żă‚čă‚Żă‚’èš­ćźšă—ăŠăă ă•ă„.

IDE ă§äœżç”šă™ă‚‹

IntelliJ IDEA ぼようăȘ IDE でè‡Șć‹•ç”Ÿæˆă•ă‚ŒăŸ Assertion ă‚Żăƒ©ă‚čă‚’äœżă†ć Žćˆă€ IDE ă«ăă‚Œă‚‰ăźă‚Żăƒ©ă‚čをèȘè­˜ă•ă›ă‚‹ćż…èŠăŒă‚ă‚ŠăŸă™.

ăăźăŸăŸă§ăŻă€ Assertion ă‚Żăƒ©ă‚čăźă‚Żăƒ©ă‚čパă‚čăžăźèżœćŠ ăŻ assertjGen タă‚čă‚ŻăźćźŸèĄŒæ™‚ă«ă ă‘èĄŒă‚ă‚ŒăŸă™.
ă€ăŸă‚Šă€ IDE は Assertion ă‚Żăƒ©ă‚čをèȘè­˜ă§ăăŸă›ă‚“.

IDE に Assertion ă‚Żăƒ©ă‚čをèȘè­˜ă•ă›ă‚‹ăŸă‚ă«ăŻă€ Assertion ă‚Żăƒ©ă‚čたć‡ș抛慈ディレクトăƒȘă‚’ă‚Żăƒ©ă‚čパă‚čă«èżœćŠ ă™ă‚‹ă‚ˆă†ă«èš­ćźšă‚’äżźæ­Łă—ăŸă™.

assertjGen {
    packages = ["sample"]
}

sourceSets {
    test {
        java {
           srcDirs assertjGen.resolveTargetDir(project)
        }
    }
}

sourceSets ăźèš­ćźšă§ă€ test.java ăźă‚œăƒŒă‚čディレクトăƒȘに Assertion ă‚Żăƒ©ă‚čたć‡șćŠ›ć…ˆă‚’èżœćŠ ă—ăŸă™.
こぼべき、 assertjGen.resolveTargetDir(project) ă‚’æŒ‡ćźšă™ă‚‹ă“ăšă§ă€ Assertion ă‚Żăƒ©ă‚čたć‡ș抛慈ぼパă‚čă‚’ć–ćŸ—ă§ăăŸă™.

これで、 IDE もè‡Șć‹•ç”Ÿæˆă•ă‚ŒăŸ Assertion ă‚Żăƒ©ă‚čをèȘè­˜ă§ăă‚‹ă‚ˆă†ă«ăȘるはずです.

ăƒȘăƒȘăƒŒă‚čăƒŽăƒŒăƒˆ

  • v2.0.0 (2017-12-10)
    • 戝曞ăƒȘăƒȘăƒŒă‚č
    • Maven ăƒ—ăƒ©ă‚°ă‚€ăƒłă‚’ćźŒć…šă«ăƒ©ăƒƒăƒ—ă—ăŸćœąă§ć†äœœæˆ.