Skip to content

Commit 70e0b2b

Browse files
committed
README and CHANGELOG
1 parent c33f893 commit 70e0b2b

File tree

2 files changed

+80
-98
lines changed

2 files changed

+80
-98
lines changed

CHANGELOG.md

Lines changed: 2 additions & 97 deletions
Original file line numberDiff line numberDiff line change
@@ -1,97 +1,2 @@
1-
## 3.1.2021122102 (21-Dec-2021 pre-release)
2-
* Make username case-insensitive in authentication provider.
3-
4-
## 3.0.0 (27-Nov-2021 pre-release)
5-
* Implement `intersystems-server-credentials` authentication provider.
6-
7-
## 2.0.6 (28-Sep-2021)
8-
* Apply `pathPrefix` correctly (#95, #99).
9-
* Update vulnerable dependencies.
10-
11-
## 2.0.5 (09-Jun-2021)
12-
* Allow extension in untrusted workspaces (#92).
13-
14-
## 2.0.4 (12-May-2021)
15-
* 'All Servers' folder contents were not sorted as documented (#87).
16-
* Use web app token instead of passing credentials to Portal.
17-
18-
## 2.0.3 (28-Apr-2021)
19-
* Only supply credentials to Portal if password came as plaintext from settings (#84).
20-
21-
## 2.0.2 (22-Apr-2021)
22-
* Support <kbd>Alt</kbd> / <kbd>Option</kbd> modifier on Edit and View buttons to add workspace folder for server-side web application files.
23-
* Add newly defined server to the 'Recent' list.
24-
* Handle repeated use of the same Edit or View button better.
25-
* Notify user if ObjectScript extension is missing.
26-
* Add more information to README.
27-
28-
## 2.0.1 (19-Apr-2021)
29-
* New icon for Activity Bar.
30-
* Fix minor typo in README.
31-
32-
## 2.0.0 (16-Apr-2021)
33-
* Add tree view interface.
34-
35-
## 1.0.5 (02-Feb-2021)
36-
* Fix publication problem (#69).
37-
38-
## 1.0.4 (01-Feb-2021) - not published
39-
* Add `/hideEmbeddedEntries` boolean to `intersystems.servers` to hide 'default~iris' etc from lists (#64).
40-
* Make the `/default` setting work as designed.
41-
* Fix problem that blocked release (#66).
42-
43-
## 1.0.3 (15-Jan-2021) - not published
44-
* On Windows, add `Import Servers from Registry`command to import server definitions from registry (#1).
45-
* Disallow the `'.'` character in server names (#60).
46-
47-
## 1.0.2 (13-Nov-2020)
48-
* Display a notification when a new server is saved.
49-
* Apply a validation pattern to `pathPrefix`.
50-
51-
## 1.0.1 (21-Oct-2020)
52-
* Use transparent background for icon.
53-
54-
## 1.0.0 (19-Oct-2020)
55-
* First production release.
56-
57-
## 0.9.2 (16-Oct-2020)
58-
* Make `pickServer` API respect `ignoreFocusOut` option if passed.
59-
* Standardize use of '&reg;' symbol in text strings.
60-
61-
## 0.9.1 (12-Oct-2020)
62-
* Fix problem that blocked 0.9.0 release.
63-
64-
## 0.9.0 (09-Oct-2020)
65-
* Rename the three built-in server definitions and push them to the bottom of the list.
66-
* Only promote the `/default` server to the top of the list if explicitly set.
67-
* Keep quickpick open when focusing elsewhere, for example to copy server details from a document.
68-
* Prepare version number for 1.0 release.
69-
70-
## 0.0.7 (11-Sep-2020)
71-
* Enhance server selector quickpick so new entries can be added User Settings.
72-
73-
## 0.0.6 (04-Sep-2020)
74-
* New icon.
75-
* Upgrade vulnerable dependency.
76-
77-
## 0.0.5 (21-Aug-2020)
78-
* Add onDidChangePassword to API.
79-
* Remove test commands, which are now provided by our `intersystems-community.vscode-extension-api-tester` extension.
80-
81-
## 0.0.4 (24-Jul-2020)
82-
* Support storing passwords in local keychain.
83-
* Add API that other extensions can use.
84-
* Improve README.
85-
86-
## 0.0.3 (02-Jul-2020)
87-
* Change publisher id to `intersystems-community`.
88-
* Disallow uppercase in server names.
89-
* First publication on Marketplace.
90-
91-
## 0.0.2 (12-Jun-2020)
92-
* Adjust `intersystems.server` object structure after feedback.
93-
* Constrain server names to use RFC3986 'unreserved' characters only.
94-
* Reduce size of VSIX.
95-
96-
## 0.0.1 (10-Jun-2020)
97-
* Initial version.
1+
## 0.1.0 (23-Mar-2023)
2+
* Initial preview VSIX version.

README.md

Lines changed: 78 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,80 @@
11
# InterSystems Testing Manager
22

3-
TODO
3+
This extension uses VS Code's [Testing API](https://code.visualstudio.com/api/extension-guides/testing) to discover, run and debug unit test classes built with the [%UnitTest testing framework](https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=TUNT_WhatIsPercentUnitTest) of the InterSystems IRIS platforms, plus Cach&eacute;-based predecessors supporting the `/api/atelier` REST service.
4+
5+
It augments the ObjectScript, InterSystems Language Server and Server Manager extensions, which are elements of the [InterSystems ObjectScript Extension Pack](https://marketplace.visualstudio.com/items?itemName=intersystems-community.objectscript-pack).
6+
7+
Classes extending `%UnitTest.TestCase` are shown in the Test Explorer view, from where they can be run and any failures investigated. An additional folder in Test Explorer gives easy access to the results of recent test runs on the server.
8+
9+
InterSystems Testing Manager works with both of the source code location paradigms supported by the ObjectScript extension. Your unit test classes can either be mastered in VS Code's local filesystem (the 'client-side editing' paradigm) or in a server namespace (the ['server-side editing'](https://intersystems-community.github.io/vscode-objectscript/serverside) paradigm). In both cases the actual test runs occur in a server namespace.
10+
11+
![Client-side paradigm animation](images/README/Overview-Client.gif)
12+
13+
_Client-side editing workspace_
14+
15+
![Server-side paradigm animation](images/README/Overview-Server.gif)
16+
17+
_Server-side editing workspace_
18+
19+
In order to support topologies in which client-side-managed test classes have to be run in the namespace of a remote server, this extension uses the `/_vscode` web application on the test-running server, no matter whether local or remote.
20+
21+
## Server Preparations
22+
23+
1. Using the server's **Management Portal**, go to **System Administration > Security > Applications > Web Applications** and look for an application named `/_vscode`.
24+
25+
- If it doesn't exist, follow [these instructions](https://intersystems-community.github.io/vscode-objectscript/serverside/#configuring-storage-for-folder-specific-settings) to create it. Make a note of the **Physical Path** value you entered. The convention suggested in the linked instructions is to use a `.vscode` subfolder of the server's install folder, for example `C:\InterSystems\IRIS\.vscode` on Windows.
26+
27+
- If the web application already exists, note its **Physical Path**.
28+
29+
2. Using an IRIS terminal session on the server, set the `^UnitTestRoot` global in each namespace you will run unit tests in via the extension. Start with the path string noted in the previous step, appending two subfolders to it. The first must match the uppercase namespace name and the second must be `UnitTestRoot`. For example, in the USER namespace of a default Windows install of IRIS:
30+
```
31+
USER>set ^UnitTestRoot="C:\InterSystems\IRIS\.vscode\USER\UnitTestRoot"
32+
```
33+
> If you previously used the `%UnitTest` framework in a namespace, be aware that you are probably replacing an existing value. Consider taking a note of that in case you need to revert.
34+
35+
## Workspace Preparations
36+
37+
1. Ensure your VS Code workspace specifies its server connection(s) by referencing server(s) in the `intersystems.servers` configuration object which InterSystems Server Manager maintains. For example, assuming a server named `iris231` has been defined:
38+
39+
- For client-side paradigm (in `settings.json`, or in `"settings"` object in `xxx.code-workspace` file):
40+
```
41+
"objectscript.conn": {
42+
"server": "iris231",
43+
"ns": "USER",
44+
"active": true
45+
},
46+
```
47+
- For server-side paradigm (in `xxx.code-workspace` file):
48+
```
49+
"folders": [
50+
{
51+
"name": "iris231:USER",
52+
"uri": "isfs://iris231:user/?mapped=0"
53+
}
54+
],
55+
```
56+
> We recommend setting the `username` property of the server definition object, and using Server Manager's secure password storage feature to hold that user's password.
57+
58+
2. For a workspace using client-side editing, test classes are sought in `.cls` files under the `internal/testing/unit_tests` subfolder, using the conventional layout of one additional subfolder per package-name element. If your test classes are located elsewhere, use the `intersystems.testingManager.client.relativeTestRoot` setting to point there.
59+
60+
## Running Tests
61+
62+
VS Code provides several different ways to run tests.
63+
64+
In the Test Explorer view expand the first root folder, which is captioned 'Local Tests' or 'Server Tests' depending on which paradigm your workspace uses.
65+
66+
A subfolder displays for each root folder of your workspace, which may be a multi-root one. Within this you are shown the test classes. The 'Local Tests' tree uses a heirarchical structure with one subfilder per segment of the package name. The 'Server Tests' tree uses a flat structure.
67+
68+
At the level of an individual test class the final expansion shows a leaf for each `TestXXX` method.
69+
70+
Hovering over any level of a tests tree will reveal action buttons that run all the tests from this level down. The 'Run' button does so without stopping at any breakpoints, in contrast to the 'Debug' button. At class or method level a 'Go to Test' button opens the class code and positions the cursor appropriately. At higher levels this button navigates to Explorer View.
71+
72+
When a test class is open in an editor tab it displays icons in the gutter at the top of the class and at the start of each test method. These show the outcome of the most recent run, if any, and can be clicked to perform testing operations.
73+
74+
The `...` menu of the Testing panel in Test Explorer includes several useful commands, including ones to collapse the tree and to clear all locally-stored test results.
75+
76+
## Recent History
77+
78+
The %UnitTest framework persists results of runs in server-side tables. The 'Recent History' root folder lets you explore the most recent ten sets of results for each server and namespace the workspace uses.
79+
80+
Hovering on a run's folder reveals an action button which launches %UnitTest's own results browser in an external web browser.

0 commit comments

Comments
 (0)