|

Improve code coverage with JaCoCo

โค้ดเก่ามีอยู่มานานแล้ว อยากเพิ่ม code coverage จะเริ่มจากตรงไหน การทำงานกับโค้ดเดิมที่มีอยู่แล้วนั้นไม่ง่ายเท่าไหร่ แล้วเราอยากจะเพิ่ม code coverage ให้กับโปรเจค Java ของเรานั้นจะเริ่มต้นอย่างไรบ้าง

Set the target

เราต้องตั้งเป้าหมายให้แน่ใจว่า เราต้องการจะมี Code coverage อยู่ที่เท่าไหร่ ยกตัวอย่าง อยากได้ code coverage อยู่ที่ 80% ก็ตั้งเป็นเป้าหมายเอาไว้

สำหรับเป้าหมาย 80% นั้นทำได้ยากพอสมควรสำหรับ legacy code แต่ก็ไม่ได้แปลว่าทำไม่ได้

Setup the Tool

สำหรับ Java เราจะใช้ JaCoCo – Java Code Coverage Library ซึ่งเราจะนำมาใช้ออก report ของ code coverage ในโปรเจคของเรา แอดเข้าไปใน pom.xml ตามด้านล่าง โดยเมื่อรัน verify ตัว Jacoco จะออก report มาให้ /target/jacoco.exec และเราเข้าไปดู report แบบ html ได้ที่ target/site/jacoco/index.html

เราก็สามารถรู้ได้แล้วว่าตอนนี้โปรเจคเรามี Code coverage อยู่กี่เปอร์เซน ตัวไหนเท่าไหร่ อย่างไร เท่านี้เราก็สามารถรู้ได้ว่าควรจะเพิ่ม code coverage ที่จุดใด

<build>
    <plugins>
        <plugin>
            <groupId>org.jacoco</groupId>
            <artifactId>jacoco-maven-plugin</artifactId>
            <executions>
                <execution>
                    <id>report</id>
                    <goals>
                        <goal>report-aggregate</goal>
                    </goals>
                    <phase>verify</phase>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

แถม

สำหรับ IntelliJ IDEA สามารถรัน Test Code Coverage ได้โดย Right Click on the module –> More Run/Debug –> Run ‘All Tests’ with Coverage

Sonarlint Plugin สำหรับดู code quality บอก code smell, duplicate, และบอกคำแนะนำต่างๆ (ต้องลงเพิ่ม ฟรี)

References

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *