zowe / zowe-explorer-intellij

Zowe Explorer plug-in for IntelliJ IDEA that provides possibility to interact with z/OS features. Has Zowe Kotlin SDK as it's core to interact
Eclipse Public License 2.0
10 stars 4 forks source link
explorer intellij intellij-plugin jcl jes kotlin tso uss zos zos-development zosmf

Zowe® Explorer plug-in for IntelliJ IDEA™

Downloads Rating Coverage Quality Gate Status

"Zowe™ Explorer" brings support for browsing, editing and creating data on z/OS via z/OSMF REST API.

Plugin in Marketplace: JetBrains Marketplace

Using our plugin you will be able to:

To start using the plugin:

Note: z/OS 2.1 or higher is required

Where to find the docs

Zowe™ Explorer plug-in for IntelliJ IDEA™ FAQ

Installing Zowe™ Explorer plug-in for IntelliJ IDEA™

Configuring Zowe™ Explorer plug-in for IntelliJ IDEA™

Using Zowe™ Explorer plug-in for IntelliJ IDEA™

Troubleshooting Zowe™ Explorer plug-in for IntelliJ IDEA™

Contribution Guidelines

Changelog

Developer guide

Setup steps

git clone git@github.com:zowe/zowe-explorer-intellij.git

How to run tests

We have two options of tests:

  1. UI tests - run with open IDE, make test of user-like interaction with the plugin;
  2. Unit tests - automated headless bundle to test plugin functions as if they were a separate pieces.

Environment configurations for UI tests:

  1. In IntelliJ Idea change Settings => Tools => Terminal Shell path parameter from PowerShell to Git Bash. Example: "C: \Program Files\Git\usr\bin\bash.exe" --login -i
  2. Make Java version 17 available from command line (add to PATH)

To run UI tests:

  1. change values for ZOS_USERID, ZOS_PWD, CONNECTION_URL in src/uiTest/kotlin/auxiliary/utils.kt
  2. run ./gradlew buildPlugin in console
  3. run the script uiTest.sh
  4. once IdeForUiTests started make it as main window on the screen and do not touch mouse anymore
  5. on first launch a ide_for_launch folder will be created and ide will be downloaded

UI tests results: build/reports/tests/uiTest/index.html

To run smoke test:

  1. change values for ZOS_USERID, ZOS_PWD, CONNECTION_URL in src/uiTest/kotlin/auxiliary/utils.kt
  2. run the script smokeTest.sh
  3. if unit tests fail, smoke ui test will be skipped. When unit tests are successful, IdeForUiTests will be run
  4. once IdeForUiTests started make it as main window on the screen and do not touch mouse anymore

Smoke test results: build/reports/tests/test/index.html with report for unit tests, build/reports/tests/SUCCESS(FAILURE).txt with quick summary for unit test run (file name depends on test run result), build/reports/tests/smokeUiTest/index.html with report for smoke UI test

To run unit tests:

"Unit tests" Gradle task: just run it as a configuration option. If you want to run a separate unit test, you should consider to use "Kotest" plugin. Firstly, you need to download it. Then, go to "Edit Configurations..." -> "Edit configuration templates..." -> "Kotest". In there, you need to enable VM options and add the following lines:

-Didea.force.use.core.classloader=true 
--add-opens=java.base/java.lang=ALL-UNNAMED
--add-opens=java.base/java.nio.file=ALL-UNNAMED
--add-exports=java.base/jdk.internal.vm=ALL-UNNAMED
--add-opens=java.desktop/java.awt=ALL-UNNAMED
--add-opens=java.desktop/java.awt.event=ALL-UNNAMED
--add-opens=java.desktop/javax.swing=ALL-UNNAMED
--add-opens=java.desktop/javax.swing.plaf.basic=ALL-UNNAMED
--add-opens=java.desktop/sun.awt=ALL-UNNAMED
--add-opens=java.desktop/sun.font=ALL-UNNAMED

After the "Kotest" is set up, just click on the green arrow near the test you want to run.

In case of any troubles during plugin usage, feel free to contact us.

How to contribute

If you want to help the project, improve some functionality, resolve bug or add some new feature, please, refer to the contribution guide.

How to obtain and provide feedback

If you have any questions, related to the project development, further plans or something else, you can reach as out by some of the communication chanels:

Note: GitHub issue is the preferred way of communicating in case of creating some bug/feature/request for enhancement. If you need direct consulting or you have any related questions, please, reach us out using Slack channels or E-mail