tsdetect

TSDetect is an open-source test smell detection tool. TSDetect is available as an IntelliJ plugin and command-line tool.

https://github.com/testsmells/tsdetect

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (16.0%) to scientific vocabulary

Keywords

code-quality code-quality-analyzer intellij-plugin java junit test-smells unit-test unit-testing
Last synced: 6 months ago · JSON representation ·

Repository

TSDetect is an open-source test smell detection tool. TSDetect is available as an IntelliJ plugin and command-line tool.

Basic Info
  • Host: GitHub
  • Owner: TestSmells
  • License: gpl-3.0
  • Language: Java
  • Default Branch: main
  • Homepage:
  • Size: 2.58 MB
Statistics
  • Stars: 6
  • Watchers: 2
  • Forks: 0
  • Open Issues: 50
  • Releases: 0
Topics
code-quality code-quality-analyzer intellij-plugin java junit test-smells unit-test unit-testing
Created over 4 years ago · Last pushed almost 2 years ago
Metadata Files
Readme Changelog License Citation

README.md

TSDetect

Build Version Downloads

//: # ()

TSDetect is your all in one tool for deteing code smells within your tests. Based on the research by https://testsmells.org/, This plugin analyzes unit tests in order to find potential design flaws.

Installation (Needs to be updated)

  • Using IDE built-in plugin system:

Settings/Preferences > Plugins > Marketplace > Search for "TSDetect" > Install Plugin

  • Manually:

Download the latest release and install it manually using Settings/Preferences > Plugins > ⚙️ > Install plugin from disk...

Contributing

For contributing test smells to the project see the Contributing Page

Setup

Clone repository

We recommend cloning through IntelliJ. This will ensure all dependencies are set up correctly. Be sure to give gradle time to finish setting up.

Set JDK Version

Ensure that project JDK and Language Level are set to 13 This can be found as shown below File > Project Structure > Project

| Open Project Structure | Select JDK13 and Language Level 13 | |------------------------------------------------------------------|-----------------------------------------------------------------------| | Open Project Structre | Select Project Structure |

Running Plugin

Select the Run Plugin option from the drop down. Pasted image 20220407164839.png

Running Unit Tests

  • There is a known issue where gradle will not always update the version of java used to run unit tests, can be fixed manually in
  • This can be remedied by manually going into following setting sand updating to use java 13

Project Settings > Build > Execution > Deployment > Build Tools > Gradle


For more info, please go to https://testsmells.org/

Plugin based on the IntelliJ Platform Plugin Template.

Owner

  • Name: Test Smell Research
  • Login: TestSmells
  • Kind: organization
  • Location: United States of America

Repositories to hold research related to test smells

Citation (CITATION.cff)

# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!

cff-version: 1.2.0
title: TSDetect -  IntelliJ Plugin
message: >-
  If you use this software, please cite it using the
  metadata from this file.
type: software
authors:
  - given-names: Anthony
    family-names: Peruma
    email: peruma@hawaii.edu
    affiliation: University of Hawaii at Manoa
    orcid: 'https://orcid.org/0000-0003-2585-657X'
repository-code: 'https://github.com/TestSmells/TSDetect'
keywords:
  - test smells
  - unit testing
  - junit
license: gnuplot

GitHub Events

Total
  • Watch event: 4
Last Year
  • Watch event: 4

Dependencies

database/tsdetect-mysql/docker-compose.yml docker
  • mysql 8.0
  • phpmyadmin/phpmyadmin latest
server/Dockerfile docker
  • amazoncorretto 17.0.4 build
build.gradle.kts maven
  • org.apache.logging.log4j:log4j-api 2.17.2 implementation
  • org.apache.logging.log4j:log4j-core 2.17.2 implementation
  • org.bidib.org.oxbow:swingbits 1.2.2 implementation
  • org.jfree:jfreechart 1.5.3 implementation
  • org.swinglabs.swingx:swingx-all 1.6.5-1 implementation
  • org.junit.jupiter:junit-jupiter 5.8.1 testImplementation
  • org.mockito:mockito-inline 3.12.4 testImplementation
server/build.gradle maven
  • com.fasterxml.jackson.core:jackson-databind 2.14.2 implementation
  • mysql:mysql-connector-java 8.0.31 implementation
  • org.springframework.boot:spring-boot-starter-actuator * implementation
  • org.springframework.boot:spring-boot-starter-jetty * implementation
  • org.springframework.boot:spring-boot-starter-jooq * implementation
  • org.springframework.boot:spring-boot-starter-validation * implementation
  • org.springframework.boot:spring-boot-starter-web * implementation
  • org.junit.jupiter:junit-jupiter 5.8.1 testImplementation
  • org.springframework.boot:spring-boot-starter-test * testImplementation
  • org.testcontainers:mysql 1.17.6 testImplementation
dashboard/package.json npm
  • @babel/core ^7.19.6 development
  • @babel/node ^7.20.0 development
  • @babel/preset-env ^7.19.4 development
  • @babel/preset-react ^7.18.6 development
  • babel-loader ^8.3.0 development
  • css-loader ^6.7.1 development
  • html-webpack-plugin ^5.5.0 development
  • image-webpack-loader ^8.1.0 development
  • path ^0.12.7 development
  • style-loader ^3.3.1 development
  • webpack ^5.74.0 development
  • webpack-cli ^4.10.0 development
  • webpack-dev-server ^4.11.1 development
  • @uiw/react-color-sketch ^1.1.2
  • chart.js ^3.9.1
  • react ^18.2.0
  • react-bootstrap ^2.5.0
  • react-chartjs-2 ^4.3.1
  • react-color ^2.19.3
  • react-dom ^18.2.0
  • react-router ^6.4.3
  • react-router-dom ^6.4.3
  • react-select ^5.7.0
dashboard/pnpm-lock.yaml npm
  • 812 dependencies
.github/workflows/build.yml actions
  • JetBrains/qodana-action v4.1.0 composite
  • actions/cache v2.1.6 composite
  • actions/checkout v2.4.0 composite
  • actions/setup-java v2 composite
  • actions/upload-artifact v2 composite
  • actions/upload-artifact v2.2.4 composite
  • gradle/wrapper-validation-action v1.0.4 composite
.github/workflows/release.yml actions
  • actions/checkout v2.4.0 composite
  • actions/setup-java v2 composite
.github/workflows/run-ui-tests.yml actions
  • actions/checkout v2.4.0 composite
  • actions/setup-java v2 composite
  • jtalk/url-health-check-action v2 composite