JUnit-4.12 plugin for repomate
Project description
repomate-junit4
, a JUnit 4.12 test runner plugin for repomate
This is a plugin for repomate that runs JUnit4 test classes on production classes in a cloned student repo.
Requirements
repomate-junit4
has a few non-Python dependencies.
java
must ba available from the command line.javac
must be available from the command line.- In other words, install a
JDK
version that is compatible with the files you intend to test!
- In other words, install a
junit-4.12.jar
must be available on theCLASSPATH
variable, or configured (see Added CLI arguments and Configuration file).hamcrest-core-1.3.jar
must be available on theCLASSPATH
variable or configured in order to make use ofhamcrest
matchers.
The hamcrest
and junit
jars ar available from Maven Central:
wget http://central.maven.org/maven2/junit/junit/4.12/junit-4.12.jar
wget http://central.maven.org/maven2/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar
Install
The recommended way to install repomate-junit4
is with pip
.
python3 -m pip install --user repomate-junit4
The plugin itself does not actually require repomate
, but it is fairly
useless without. If repomate
and repomate-junit4
are both installed in the
same environment, then repomate
should just find repomate-junit4
.
For repomate
to actually use repomate-junit4
, it must be configured
in the repomate
configuration file. Refer to the
repomate
docs
for information on the configuration file and its expected location, and the
Configuration file section here for info on what you
need to add to it.
Usage
Terminology and conventions
This is terminology added in excess to that which is defined in the repomate
docs.
For brevity, some conventions expected by repomate-junit4
are baked into
these definitions.
- Production class: A Java file/class written in the student repo.
- Test file: A file ending in
Test.java
which contains a test class for some production class. If the students are supposed to write a file calledLinkedList.java
, the corresponding test class must be calledLinkedListTest.java
. - Test dir: A directory named after a master repo, containing tests for student repos based on that master repo. Should contain test files as defined above.
- Reference tests directory (RTD): A local directory containing subdirectories with reference tests. Each subdirectory should be a test dir as defined above.
Added CLI arguments
repomate-junit4
adds four new CLI arguments to the repomate clone
command.
-rtd|--reference-tests-dir
- Path to the RTD.
- Required unless specified in the configuration file.
-junit|--junit-path
- Path to the
junit-4.12.jar
library. - Required unless specified on the
CLASSPATH
variable, or in the configuration file.
- Path to the
-ham|--hamcrest-path
- Path to the
hamcrest-core-1.3.jar
library. - Required unless specified on the
CLASSPATH
variable, or in the configuration file.
- Path to the
-i|--ignore-tests
- A whitespace separated list of test files (e.g.
LinkedListTest.java
) to ignore. This is useful for example if there are abstract test classes in the test dir.
- A whitespace separated list of test files (e.g.
Configuration file
First and foremost, junit4
must be added to the plugins
option under the
[DEFAULTS]
section in order to activate the plugin,
see details here.
The --hamcrest-path
, --junit-path
and --reference-tests-dir
arguments can
be configured in the standard
repomate
configuration file
by adding the [junit4]
section heading. Example:
[DEFAULTS]
plugins = junit4
[junit4]
reference_tests_dir = /absolute/path/to/rtd
junit_path = /absolute/path/to/junit-4.12.jar
hamcrest_path = /absolute/path/to/hamcrest-core-1.3.jar
Important: All of the paths in the config must be absolute for
repomate-junit4
to behave as expected.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for repomate_junit4-0.1.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fd79c65db7578148f9e24bd79d176d47819c23447306e3709d203841e773295b |
|
MD5 | 99bab1ddc1d7670de86741070ef07d70 |
|
BLAKE2b-256 | 81795dafe6699fd3a980665d2609e20b8a73eab176e363da1b899b36e4491a5f |