In order to ensure new changes won't break the test, I added Continuous Integration(CI) for my project ConvertTxtToHtml.
1. Add CI
Because my project is on GitHub, I choose to use GitHub Actions. I did it according to the GitHub document. I created a gradle.yml for my java project, and set steps for running the JUnit test.
name: Java CI with Gradle on: push: branches: [ "main" ] pull_request: branches: [ "main" ] permissions: contents: read jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Set up JDK 20 uses: actions/setup-java@v3 with: java-version: '20' distribution: 'temurin' - name: Run JUnit tests run: | export CLASSPATH=$CLASSPATH:$GITHUB_WORKSPACE/junit4.10/junit-4.10.jar cd $GITHUB_WORKSPACE/src java org.junit.runner.JUnitCore junit.ConvertTxtMdToHtmlTest
2. Create a PR to test it
Then I wrote another unit test for my project and created a PR, then in the action, I could find my CI and built successfully!
3. Add test for other python project
In order to lean more about test and CI, I tried to add test for other project. til-page-builder is a command-line tool for authoring "Today I Learned" posts in Markdown, which can be converted to HTML for publishing on the web.
It is written in Python, the Author write detailed README and CONTRIBUTING, I can install, styling, linting, run test, get coverage successfully according to his document. Every step is clear and clean! It's really a good work.
This entire Python project structure is well-organized with well-defined functionality for each section. And the code is broken down into modules, each responsible for specific functionality, enhancing code maintainability and reusability.
I created a unit test for the src/utils/commandline.py, I improved the coverage from 70%->84%
It was a valuable learning experience, especially in the world of continuous integration (CI) and testing. Through personal participation and practical application, I gained a deep understanding of the importance of CI pipelines and the important role of testing in software development.
Top comments (0)