The repository includes the TestKnight's plugin code as well as the code of the telemetry server used to collect usage information.
TestKnight is an all in one plugin for IntelliJ IDEA that helps you write automatic tests for your codebase. Specifically, TestKnight extends your IDE to allow you to design test-suites based on structural and side-effect analysis of your code as well as inspect how your test-suite evolves.
Install it via IntelliJ's marketplace!
Generate testing checklists for methods/classes based on structural and black-box testing.
Quickly navigate between the test cases within a test file.
When you run with coverage twice you can see the lines of code covered by the most recent test-run in a brighter green.
Additionally you can compare coverage with the previous run by pressing the "Diff" button for the class:
If coverage information is available, testKnight will allow you to highlight the lines covered by a specific test case.
TestKnight can detect the side-effects in a method and suggest assertions for the method under test.
Easily duplicate an existing test method and change the values of often-changed code elements such as constructor arguments and literals.
TestKnight is designed with the user in mind. We have strived to create a tool that is intuitive to use and unintrusive. That means no annoying pop-ups while coding, no error messages and no breaking your flow.
TestKnight was originally envisioned by the TU Delft Software Engineering Research Group. The project was assigned to 5 Bachelor students at the same university as part of the CSE2000 course. The original version of it was developed within 2 months in a university GitLab instance and in the end the project was migrated to GitHub for everyone to see.
Development wise, the plugin is developed using Kotlin and utilizing the IntelliJ SDK whereas the telemetry server is a simple Spring Boot application.
Lastly, we have used Gradle
as a build tool for both the plugin and the server.
This repository consists of 2 main submodules.
- The
/plugin
directory contains all the source code and configuration files of the actual plugin. - The
/server
directory contains all the source code and configuration files for the telemetry server.
Additionally, the /documentation
directory includes useful documentation and design documents. Moreover, it includes 2 educational
documents to help you get started with Kotlin and with the IntelliJ SDK.
In this section you can find instructions on how to run the different parts of TestKnight for development purposes.
After cloning the repository you can navigate to the /plugin
directory. From there you can run:
gradle runIde
this should open an IntelliJ instance with the plugin loaded.
Alternatively, after cloning the project you can open it with IntelliJ IDEA and from there you can use the 'Gradle' tab and run options. From the tab you can go to plugin -> Tasks -> intellij -> runIde
. Otherwise, you can set the run configuration to Run Plugin
.
Similarly to above, after cloning the repository you can navigate to the /server
directory and run gradle bootRun
.
Alternatively, you can open the project in IntelliJ IDEA and run the server either by the gradle
tab by going on
server -> Tasks -> application -> bootRun
or by setting TESTKNIGHTTELEMETRYSERVERAPPLICATION
as the run configuration.
TestKnight is proudly developed by: Cristian Botocan, Jorge Romeu Huidobro, Mathanrajan Sundarrajan, Piyush Deshmukh, and Pavlos Makridis.
This project is developed under the supervision of Pouria Derakhshanfar, Mark Swillus, Maurício Aniche, and Andy Zaidman, all members of the Software Engineering Research Group (SERG) of the Delft University of Technology, in the Netherlands.