Add Maven + JUnit 5 tests and GitHub Actions CI - #10
Merged
Merged
Conversation
Keep teaching sources under encryption/src and point Maven sourceDirectory there. Add JUnit 5 coverage for the main utils, a JDK 21 mvn test workflow, and README updates. Co-authored-by: Elven_xu <799835984@qq.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Layout
Root
pom.xmlwith:encryption/src(existingelven.encryption/elven.testpackages stay put)src/test/java(outside the teaching tree so Maven does not compile JUnit as main code)Teaching
maindemos are not moved intosrc/main/java.elven.test.test*classes still compile as part of main sources and can be run from the READMEjavac/javacommands.JDK: Maven compile/test target is 17; GitHub Actions uses 21. Demos still run with
javacon JDK 11+.How to run tests
mvn testCI (
.github/workflows/ci.yml) runsmvn -B teston push/PR tomasterwith Temurin JDK 21.elven.test.test*are print-to-console mains.src/test/java/**/*Test.javaare JUnit 5 assertions. Do not expectmvn testto execute the teaching mains.Coverage
Base64UtilSHA256UtilHMACUtilverifytrueAESUtilAEADBadTagExceptionPBKDF2UtilRSAUtilDHUtilECDHUtilDESUtil/DESedeNo BouncyCastle. Crypto teaching defaults unchanged.
target/remains gitignored.