What I just pushed
VTWebCatCLI 1.1.2 is tagged and has a GitHub release now! It is a local checker you run before you submit a Java assignment to Web-CAT at Virginia Tech. The code is at https://github.com/kleinpanic/VTWebCatCLI and the release is at https://github.com/kleinpanic/VTWebCatCLI/releases.
It started as 1.0.0 and went through 1.1.0 and 1.1.1 before this tag. This is the first one I tagged. The release has one file, webcatcli-1.1.2.tar.gz, and a workflow builds it.
What it checks
- style: indentation, line length, one public class per file, static fields, empty or unused methods
- Javadoc and its tags: @author, @version, @param, @return and @Override
- test conventions
It builds a minimal Maven pom.xml with JUnit 4 and JaCoCo on the fly. With --run-tests it runs mvn clean verify, prints the JUnit results as a tree, and demands 100 percent method and branch coverage. It prints the gaps. When it exits, or when you hit Ctrl-C, it cleans up the files it made.
How it works
It is one Python file, WebcatCLI.py, 690 lines. A man page and shell completion sit in doc/, and the rules are in templates/CS2114.rules.json. You need Python 3.6 or newer. --run-tests also needs Java 8 or newer and Maven. The license is MIT.
git clone https://github.com/kleinpanic/VTWebCatCLI
cd VTWebCatCLI
chmod +x WebcatCLI.py
python WebcatCLI.py --run-tests /path/to/project
Add the folder to your PATH to run it from anywhere.
What it is not
It is not a replacement for the official Web-CAT report. It is a preflight check. The README says the same thing: it is not a complete replacement for the official report yet.
P.S Thanks for reading. Consider subbing to the RSS feed.
Klein Panic