Skip to content

arieslab/jnose

Repository files navigation

JNose

Web tool for automatic Test Smells detection and code coverage metrics in Java projects.

Features

  • Detects 21 test smells in JUnit test code
  • Collects code coverage metrics via JaCoCo
  • Supports JUnit 3, 4, and 5
  • Web interface built with Apache Wicket 10 (Jakarta EE)
  • Git integration for evolution analysis
  • CSV export of results
  • Built with JDK 25+, Spring Boot 4.0, Wicket 10, Spring 7, Hibernate 7, Tomcat 11 (Jakarta EE 11)

Quick Start

Run with Maven

mise exec -- mvn spring-boot:run

Open http://localhost:8080

Executable JAR

curl -LO https://github.com/arieslab/jnose/releases/download/v2.5.0/jnose-2.5.0.jar
java -jar jnose-2.5.0.jar

Building from source

git clone https://github.com/arieslab/jnose
cd jnose
mise exec -- mvn clean package -DskipTests
java -jar target/jnose-2.5.0.jar

JDK 25 is required. The project uses mise to manage the JDK version — mise exec -- mvn <goal> ensures the correct JDK.

Using Docker

docker build -t jnose .
docker run -dp "8080:8080" jnose

Or pull from Docker Hub:

docker pull tassiovirginio/jnose
docker run -dp "8080:8080" tassiovirginio/jnose

Maven Dependency

<dependency>
    <groupId>io.github.arieslab</groupId>
    <artifactId>jnose</artifactId>
    <version>2.5.0</version>
</dependency>

The project depends on jnose-core, available on Maven Central:

<dependency>
    <groupId>io.github.arieslab</groupId>
    <artifactId>jnose-core</artifactId>
    <version>0.9.4</version>
</dependency>

Tutorials

Papers

  • JNose: Java Test Smell Detector — Tássio Virgínio, Luana Almeida Martins, Larissa Rocha Soares, Railana Santana, Adriana Priscila Santos Cruz, Heitor Costa, Ivan Machado (2020): CBSoft 2020
  • An Empirical Study of Automatically-Generated Tests from the Perspective of Test Smells — Tássio Virgínio, Luana Martins, Larissa Soares, Railana Santana, Heitor Costa, Ivan Machado (2020): CBSoft 2020
  • Used to detect TestSmells and Coverage in (2019): ACM

Feature requests

Please, feel very welcome to create new issues on this repository to request new features and report bugs.

Contributors

Contributing

  • Create an issue on this repository
  • Fork this repository
  • Create a branch and link the name to the related issue
  • Commit and push
  • Open a Pull Request

Contact

License

Apache License 2.0