@@ -15,24 +15,23 @@ end-to-end UI tests that interact with a running IDE.
1515
1616### Unit Tests
1717
18- Unit tests cover business logic, action update logic, and error paths. They run quickly and don't require a running
19- IDE:
18+ Unit tests cover business logic, action update logic, and error paths. They run quickly and don't require a running IDE:
2019
2120``` bash
2221./gradlew test
2322```
2423
2524### UI Tests
2625
27- UI tests validate full user workflows by interacting with a running PyCharm instance via RemoteRobot. Start the IDE
28- with robot-server in one terminal:
26+ UI tests validate full user workflows by interacting with a running PyCharm instance via RemoteRobot. Start the IDE with
27+ robot-server in one terminal:
2928
3029``` bash
3130./gradlew runIdeForUiTests
3231```
3332
34- Wait for the IDE to fully start and the robot-server to be ready at http://localhost:8082 , then run the tests in
35- another terminal:
33+ Wait for the IDE to fully start and the robot-server to be ready at http://localhost:8082 , then run the tests in another
34+ terminal:
3635
3736``` bash
3837./gradlew uiTest
@@ -63,8 +62,8 @@ Check code style with `./gradlew ktlintCheck` or auto-fix issues with `./gradlew
6362## Continuous Integration
6463
6564The CI pipeline in ` .github/workflows/check.yaml ` builds the plugin, runs linting, executes unit tests with coverage
66- verification followed by UI tests, verifies the plugin against PyCharm Community and PyCharm Professional, and creates
67- a release draft on the main branch.
65+ verification followed by UI tests, verifies the plugin against PyCharm Community and PyCharm Professional, and creates a
66+ release draft on the main branch.
6867
6968The test job runs unit tests with ` koverVerify ` , then starts Xvfb and the IDE with robot-server, and finally runs UI
7069tests for end-to-end validation.
@@ -75,8 +74,8 @@ Before committing, run `./gradlew ktlintFormat` to fix style issues, then `./gra
7574pass with full coverage. If you modified action classes, run UI tests for end-to-end validation by starting
7675` ./gradlew runIdeForUiTests ` in one terminal and ` ./gradlew uiTest ` in another.
7776
78- Follow conventional commit style: use ` feat: ` for new features, ` fix: ` for bug fixes, ` refactor: ` for code
79- refactoring, ` test: ` for test changes, ` docs: ` for documentation, and ` chore: ` for maintenance tasks.
77+ Follow conventional commit style: use ` feat: ` for new features, ` fix: ` for bug fixes, ` refactor: ` for code refactoring,
78+ ` test: ` for test changes, ` docs: ` for documentation, and ` chore: ` for maintenance tasks.
8079
8180## Troubleshooting
8281
@@ -90,15 +89,14 @@ code requires IntelliJ platform services that can't be mocked, add UI test cover
9089
9190## Releasing
9291
93- The plugin version is defined in ` gradle.properties ` as ` pluginVersion ` . To release, update the version in that file
94- and merge your PR to main. The CI automatically creates a draft release on GitHub with the version from
95- ` gradle.properties ` .
92+ The plugin version is defined in ` gradle.properties ` as ` pluginVersion ` . To release, update the version in that file and
93+ merge your PR to main. The CI automatically creates a draft release on GitHub with the version from ` gradle.properties ` .
9694
9795Review the draft release on the [ Releases page] ( https://github.com/pyvenvmanage/PyVenvManage/releases ) and edit the
9896release notes if needed. Click "Publish release" (not pre-release) to trigger the release workflow, which builds and
9997signs the plugin, publishes to [ JetBrains Marketplace] ( https://plugins.jetbrains.com/plugin/20536-pyvenv-manage-2 ) ,
100- uploads the plugin ZIP to the GitHub release, and creates a PR to update CHANGELOG.md. Merge that changelog PR after
101- the release workflow completes.
98+ uploads the plugin ZIP to the GitHub release, and creates a PR to update CHANGELOG.md. Merge that changelog PR after the
99+ release workflow completes.
102100
103101The release workflow requires repository secrets configured by maintainers: ` PUBLISH_TOKEN ` for JetBrains Marketplace
104102upload, and ` CERTIFICATE_CHAIN ` , ` PRIVATE_KEY ` , and ` PRIVATE_KEY_PASSWORD ` for plugin signing.
0 commit comments