Skip to content

Feature/goland extension#23

Open
dmedovich wants to merge 2 commits into
ozontech:mainfrom
dmedovich:feature/goland-extension
Open

Feature/goland extension#23
dmedovich wants to merge 2 commits into
ozontech:mainfrom
dmedovich:feature/goland-extension

Conversation

@dmedovich

Copy link
Copy Markdown
Contributor

Related issue

Closes #7

TL;DR

Added a GoLand extension for Testo and manually validated run/debug flows on:

  • Fedora Linux 44, kernel 7.0.13-200.fc44.x86_64, GoLand 2026.1.4

The plugin is implemented on top of the IntelliJ Platform / GoLand APIs and uses native Go Test run configurations, so no OS-specific behavior is expected. macOS and Windows were not manually tested.

Summary

Adds a GoLand plugin for Testo.

The plugin provides gutter actions for running and debugging:

  • a whole Testo suite from the suite caller test;
  • an individual Testo suite test method.

It reuses GoLand's native Go Test run/debug configuration, so SDK handling, test output, rerun, coverage/debugger integration, and IDE behavior stay on the standard GoLand path.

What changed

  • Added goland-extension Gradle project.
  • Added Testo target detection for:
    • suite caller functions using testo.RunSuite;
    • suite test methods like func (s *Suite) TestSomething(...);
    • default, aliased, and dot imports of github.com/ozontech/testo;
    • suite arguments like Suite{}, &Suite{}, and new(Suite).
  • Added Go Test run configuration producer and gutter line marker.
  • Added unit tests for PSI target detection and run configuration generation.
  • Added GoLand extension CI job.
  • Updated changelog.

Validation

  • ./gradlew test
  • ./gradlew test buildPlugin verifyPlugin --no-daemon --no-configuration-cache
  • make

Manual validation:

  • Installed the built plugin ZIP into GoLand 2026.1.4 on Fedora.
  • Ran examples/01_suite individual suite test from the gutter action near TestMath.
  • Ran the whole examples/01_suite suite from the gutter action near testo.RunSuite(...).
  • Debugged through GoLand native debugger and confirmed breakpoint hit.

Manual test steps

  1. Build the plugin:
cd goland-extension
./gradlew buildPlugin
  1. Install the generated zip from:
goland-extension/build/distributions/testo-goland-extension-0.1.0.zip

via Settings | Plugins | Gear icon | Install Plugin from Disk...

  1. Restart Goland
  2. Open examples/01_suite/main_test.go (or any other examples)
  3. Run or debug Testo Suite.TestMath from gutter action near TestMath
  4. Run Testo Suite from the gutter action near testo.RunSuite(...).

@metafates metafates added the enhancement New feature or request label Jul 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Testo GoLand plugin

2 participants