getgauge / gauge-vscode Goto Github PK
View Code? Open in Web Editor NEWA Visual Studio Code plug-in for Gauge
Home Page: https://gauge.org
License: MIT License
A Visual Studio Code plug-in for Gauge
Home Page: https://gauge.org
License: MIT License
I specifications that use tables to feed data to scenarios.
Provide an option to select and run a specific row.
If the gauge plugin is installed without the gauge binary.
Display a message and link to gauge downloads page.
Looking for a document regarding the features supported by gauge plugin for VSCode.
Can you please guide me to the corresponding link?
Expected behavior
Give a better error
Actual behavior
Getting error Couldn't start client langserver
Steps to replicate
Couldn't start client langserver
.gauge
binary. Show the install gauge button.IDE support for Gauge.
Gauge LSP should be supported for .spec and .cpt files.
Expected behavior
Should be able to execute gauge tests
Actual behavior
Getting a null pointer exception
panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xc0000005 code=0x0 addr=0x20 pc=0x71fe1d]
goroutine 1 [running]:
github.com/getgauge/gauge/util.FindConceptFilesIn.func1(0xc04213c690, 0x28, 0x0, 0x0, 0xc042129500)
src/github.com/getgauge/gauge/util/fileUtils.go:103 +0x2d
github.com/getgauge/gauge/vendor/github.com/getgauge/common.FindFilesInDir.func1(0xc04213c690, 0x28, 0x0, 0x0, 0xc29020, 0xc04213c6f0, 0x0, 0x0)
src/github.com/getgauge/gauge/vendor/github.com/getgauge/common/common.go:170 +0x71
path/filepath.walk(0xc0420fa940, 0x20, 0xc321a0, 0xc0421290e0, 0xc0420fa720, 0x0, 0x0)
/usr/local/Cellar/go/1.8.3/libexec/src/path/filepath/path.go:372 +0x305
path/filepath.walk(0xc0420fa6e0, 0x1a, 0xc321a0, 0xc0421283c0, 0xc0420fa720, 0x0, 0x20)
/usr/local/Cellar/go/1.8.3/libexec/src/path/filepath/path.go:376 +0x41b
path/filepath.Walk(0xc0420fa6e0, 0x1a, 0xc0420fa720, 0xc0420fa6e0, 0x1a)
/usr/local/Cellar/go/1.8.3/libexec/src/path/filepath/path.go:398 +0x153
github.com/getgauge/gauge/vendor/github.com/getgauge/common.FindFilesInDir(0xc0420fa6e0, 0x1a, 0x9e17e0, 0x9e17d0, 0x0, 0x0, 0x9)
src/github.com/getgauge/gauge/vendor/github.com/getgauge/common/common.go:177 +0xe9
github.com/getgauge/gauge/util.findFilesIn(0xc0420fa600, 0x1a, 0x9e17e0, 0x9e17d0, 0x1a, 0x0, 0x0)
src/github.com/getgauge/gauge/util/fileUtils.go:83 +0x68
github.com/getgauge/gauge/util.FindConceptFilesIn(0xc0420fa600, 0x1a, 0xc0420fa600, 0x1a, 0x0)
src/github.com/getgauge/gauge/util/fileUtils.go:108 +0x59
github.com/getgauge/gauge/util.GetConceptFiles(0x926bc0, 0x0, 0xc0420857d8)
src/github.com/getgauge/gauge/util/fileUtils.go:175 +0x111
github.com/getgauge/gauge/parser.CreateConceptsDictionary(0xc0421281e0, 0x0)
src/github.com/getgauge/gauge/parser/conceptParser.go:222 +0xcb
github.com/getgauge/gauge/parser.ParseConcepts(0xc0420e9b00, 0x0)
src/github.com/getgauge/gauge/parser/parse.go:93 +0x29
github.com/getgauge/gauge/validation.ValidateSpecs(0xc04203b7c0, 0x1, 0x1, 0x0, 0x0)
src/github.com/getgauge/gauge/validation/validate.go:189 +0x177
github.com/getgauge/gauge/execution.ExecuteSpecs(0xc04203b7c0, 0x1, 0x1, 0x0)
src/github.com/getgauge/gauge/execution/execute.go:122 +0xb4
github.com/getgauge/gauge/cmd.execute(0xc04203b7c0, 0x1, 0x1)
src/github.com/getgauge/gauge/cmd/run.go:110 +0x15c
github.com/getgauge/gauge/cmd.glob..func10(0xc5e380, 0xc04203b7c0, 0x1, 0x1)
src/github.com/getgauge/gauge/cmd/run.go:50 +0xab
github.com/getgauge/gauge/vendor/github.com/spf13/cobra.(*Command).execute(0xc5e380, 0xc04203b780, 0x1, 0x1, 0xc5e380, 0xc04203b780)
src/github.com/getgauge/gauge/vendor/github.com/spf13/cobra/command.go:651 +0x241
github.com/getgauge/gauge/vendor/github.com/spf13/cobra.(*Command).ExecuteC(0xc5d280, 0xd, 0xc0420544e8, 0xc0420ce4b0)
src/github.com/getgauge/gauge/vendor/github.com/spf13/cobra/command.go:726 +0x340
github.com/getgauge/gauge/vendor/github.com/spf13/cobra.(*Command).Execute(0xc5d280, 0x0, 0x17)
src/github.com/getgauge/gauge/vendor/github.com/spf13/cobra/command.go:685 +0x32
github.com/getgauge/gauge/cmd.Parse(0xc04201c000, 0xc04201c000)
src/github.com/getgauge/gauge/cmd/cmd.go:97 +0x44
main.main()
Steps to replicate
gauge run specs
This gives the error
Version
Gauge version: 0.9.5.nightly-2017-11-20
Commit Hash: c49041d
Plugins
-------
js (2.0.3.nightly-2017-11-16)
Currently, gauge files are interpreted using vscode's markdown support.
This causes .md
files to be interpreted as gauge
file, even in non-gauge projects.
Proposal:
Introduce a new gauge
language, that will use the same markdown grammar to highlight elements, but isolate this to only .spec
and .cpt
files.
Note:
Existing gauge-vscode features (goto def, find refs, code lens, execution etc.) should all work as before.
Expected behavior
Deprecation messages should not appear in the IDE
Actual behavior
Old gauge commands are being used, so we see deprecation message.
Either use gauge latest commands or the flag that suppresses deprecation message.
Expected behavior
I should be able to work with VSCode seamlessly
Actual behavior
Getting the error The langserver server crashed 5 times in the last 3 minutes. The server will not be restarted.
Steps to replicate
Version
Gauge version: 0.9.4
Plugins
-------
csharp (0.10.1)
html-report (4.0.2)
java (0.6.6.nightly-2017-09-14)
js (2.0.1)
ruby (0.4.2)
screenshot (0.0.1)
spectacle (0.1.2)
xml-report (0.2.0)
Expected behavior
The suggestion to add implementation should be shown only on the command line.
Actual behavior
The suggestion comes up in the IDE
Add the following missing implementations to fix `Step implementation not found` errors.
step("step1", function() {
throw new Error("Provide custom implementation");
});
Steps to replicate
Version
Gauge version: 0.9.5
Plugins
-------
html-report (4.0.2)
js (2.0.3.nightly-2017-11-08)
VS-Code version: 1.18.1
Gauge Extension Version: 0.0.3
Gauge version: 0.9.5
Commit Hash: f539aef
Plugins
-------
csharp (0.10.1)
go (0.1.1)
html-report (4.0.2)
java (0.6.5.nightly-2017-09-05)
js (2.0.3)
python (0.2.2)
ruby (0.4.2)
screenshot (0.0.1)
Run Scenario gauge.execute.scenarios
gauge.execute.scenarios
Add the command "Report Issues" in VS code's command palette to link quickly create a Github issue.
This can be used to capture feedback and report bugs.
This must capture gauge cli and gauge plugin version.
For reference check "Report Issues" command for VS code.
Expected behavior
I should be able to click on the link to html-report and see the report
Actual behavior
Hover on the link says click to follow
. However a Click on the link does nothing
Steps to replicate
Do not show language server output so that output of running specifications or scenarios is always in focus.
If this is required for debugging make it available only on nightly versions.
Currently most of the IDE features (go to def, autocomplete of unused steps, diagnostic, copy stub etc) are only available for gauge-js
projects.
Provide all these features for gauge-ruby
project as well.
Expected behavior
Should show stacktrace when exception is thrown
Actual behavior
throw 'Error'
throw 'Error2'; // generates an exception with a string value
throw 42; // generates an exception with the value 42
throw true; // generates an exception with the value true
throw new Error('Unimplemented Step');
Version
Gauge version: 0.9.5.nightly-2017-11-23
Commit Hash: 51cfe8d
Plugins
-------
js (2.0.3.nightly-2017-11-23)
After a gauge run, allow the users to open the html-report.
overwrite_reports
= false
then the report for the last run must be opened.Add Configuration...
button in the launch.json
command-uri
associated with a command that will open the reportThis will require use of a node module (ex. node-open).
preview
pane.This may require a DocumentContentProvider and a DocumentLinkProvider.
The feature provided by #16 must be available in the command pallete as "Gauge: Find All Step References"
Expected behavior
Gauge functionality should work for a new project
Actual behavior
Diagnostics and goto definition does not work
Steps to replicate
Version
Gauge version: 0.9.5.nightly-2017-11-22
Commit Hash: 9432093
Plugins
-------
js (2.0.3.nightly-2017-11-22)
Expected behavior
If the step text is empty, copy implementation.. should not be displayed.
Actual behavior
step("", async function() {
throw 'Unimplemented Step';
});
Steps to replicate
Observe the code getting generated for empty text
Version
Gauge version: 0.9.5.nightly-2017-11-15
Commit Hash: 55fe281
Plugins
-------
js (2.0.3.nightly-2017-11-16)
VSCode should consider .spec and .cpt files as markdown, so that all markdown features available in VSCode is activated for .spec and .cpt files too.
VSCode should activate gauge if .spec, .cpt or .md files are opened and the current directory is a gauge project. Gauge daemon should be started to provide LSP features, like code completion, for these files.
Expected behavior
Using goto definition, I should be able to navigate to the concept.
Actual behavior
From a spec when I try navigating to a concept. I get the error
Unable to open 'abc.cpt': File not found (\\c:\<project_path>\lsp-tests\specs\concepts\abc.cpt).
This file exists in the given path
Steps to replicate
some.spec
One
Version
Gauge version: 0.9.4.nightly-2017-10-09
Commit Hash: 8ef345c
Plugins
-------
csharp (0.10.1)
html-report (4.0.2)
java (0.6.6.nightly-2017-09-14)
js (2.0.1)
ruby (0.4.2)
screenshot (0.0.1)
spectacle (0.1.2)
xml-report (0.2.0)
VS Code - gauge-0.0.1.nightly-2017-10-06
While installing, I am getting the following error
up to date in 3.668s
sh: vsce: command not found
npm ERR! file sh
npm ERR! code ELIFECYCLE
npm ERR! errno ENOENT
npm ERR! syscall spawn
npm ERR! [email protected] build: `npm install && vsce package`
npm ERR! spawn ENOENT
npm ERR!
npm ERR! Failed at the [email protected] build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /Users/sswaroop/.npm/_logs/2017-08-31T05_56_31_089Z-debug.log
Expected
Each gauge run (run tests) should show the result in a Gauge Execution
output channel window. There should be only one such window. Subsequent run should reuse the same window to display results
Actual
Executing a spec or scenario is creating a new Gauge Execution
output channel. There is one window for each execution.
A newly created spec file should have
Specification Heading
=====================
Created by <username> on <date>
This is an executable specification file which follows markdown syntax.
Every heading in this file denotes a scenario. Every bulleted point denotes a step.
Scenario Heading
----------------
A newly created concept file should have
Created by <user> on <date>
This is a concept file with following syntax for each concept.
# Concept Heading
* step1
* step2
Expected behavior
I should be able to work with VS Code seamlessly
Actual behavior
Getting Invalid response
and Request timout
errors on the steps
Steps to replicate
Observe these errors occurs after a while
Version
Gauge version: 0.9.5.nightly-2017-11-23
Commit Hash: 51cfe8d
Plugins
-------
js (2.0.3.nightly-2017-11-23)
There's no way to run all the specifications in VS code
Provide a command palate option "Run All Specifications" that will run all Gauge specifications in the current project.
table
snippetHere's how it's generated
|HEADER|HEADER|HEADER|
|value|value|value|
|value|value|value|
|HEADER |HEADER | HEADER |
|-----------|-----------|-----------|
|value |value |value |
|value |value |value |
Plugins in vs code can upgrade automatically.
Whenever gauge plugin updates, show up an info bar, with the message.
"Gauge plugin updated to version 0.4.x" with a button "View release notes" and "Do not show this again"
Clicking "View release notes" takes the user to github releases page for that version.
$ gauge init ruby
$ code .
Open example.spec
. All the steps are highlighted as red with the following errors on hover.
"Connection closed 127.0... cause: EOF"
"write tcp 127.0.0.1:42569->127.0.0.1:52118: use of closed network connection"
Disable gauge features that don't work for non-javascript projects.
Show a code lens over the step implementation that will bring up a usages view.
Acceptance criteria
2 references
step("Vowels in English language are <vowels>.", function(vowelsGiven) {
assert.equal(vowelsGiven, vowels.join(""));
});
Test cases
Add a command to rerun failed scenraios.
Expected behavior
I should be able to identify the duplicate scenario with the message.
Actual behavior
The current error message has line number details of the current scenario
Steps to replicate
Version
Gauge version: 0.9.5.nightly-2017-11-22
Commit Hash: 9432093
Plugins
-------
js (2.0.3.nightly-2017-11-22)
Expected behavior
When there are multiple workspaces, all the functionality must work.
Goto definition
Find usages
Diagnostics
Autocomplete
Unless explicitly referenced, the list must be limited to elements in the workspace
Execute
Workspace
Provide a codeAction on unimplemented steps to generate a method stub and copy it to the clipboard.
For e.g.
* This is a new step
Gets a codeAction option "Copy function stub for this step to clipboard"
Running the codeAction copies following codeto clipboard
step("This is a new step", async function(){
throw 'Unimplemented Step';
});
Proposed behavior
While editing a Gauge specification Ctrl+Shift+P must display the commands
Out of scope
Acceptance criteria
Version 1.18.0-insider
Commit f1ee80be081b0d47f4423b9dc5f41a65c36146da
Date 2017-10-13T08:29:25.973Z
Shell 1.7.7
Renderer 58.0.3029.110
Node 7.9.0
Architecture x64
$ gauge version
Gauge version: 0.9.4
Commit Hash: 03e62ef
Plugins
-------
csharp (0.10.1)
go (0.1.1)
html-report (4.0.2)
java (0.6.5.nightly-2017-09-05)
js (2.0.2)
python (0.2.2)
ruby (0.4.2)
screenshot (0.0.1)
Expected behavior
Diagnostics should appear for gauge files.
Actual behavior
Diagnostics are being displayed only when specs is the highest folder of specifications.
Steps to replicate
gauge init js
Observation run, goto definition are working.
Version
Gauge version: 0.9.5.nightly-2017-11-22
Commit Hash: 9432093
Plugins
-------
js (2.0.3.nightly-2017-11-22)
Proposed behavior
User should be able to repeat the last run
Behavior to be retained
Proposed behavior
When a scenario fails, after a run inside VS Code.
The user can click on failure stack trace to navigate to the file and line of failure.
Acceptance criteria
## IDE Plugins
Failed Step: Display the IDE plugins
Specification: specs/example.spec:37
Error Message: AssertionError: false == true
Stacktrace:
AssertionError: false == true
at step (tests/step_implementation.js:67:12)
at process._tickCallback (internal/process/next_tick.js:109:7)
specs/example.spec:37
and tests/step_implementation.js:67:12
must be links that navigate to the line that cause the test failure.
Problem
When there is a panic runtime exception from gauge, the gauge process is getting killed in the IDE.
Observations
IDE VSCode gives the error The language server crashed 5 times in the last 3 minutes
Expected behavior
IDE should continue working
Version
Gauge version: 0.9.5.nightly-2017-11-23
Commit Hash: 51cfe8d
Plugins
-------
js (2.0.3.nightly-2017-11-23)
screenshot (0.0.1
Proposed behavior
User should be able to stop an execution which is started
Actual behavior
There is no way to stop executions
Things to consider
Expected behavior
Gauge functionality should work normally when there is a space in the project path
Actual behavior
Getting
09:59:40.267 failed to parse specification <folderpath>\Downloads\test1%!\(MISSING)test1\specs\example.spec
Steps to replicate
test1 1\projectfolder
Observe code action for generating stubs for unimplemented step is not available
Version
Gauge version: 0.9.5.nightly-2017-11-22
Commit Hash: 9432093
Plugins
-------
js (2.0.3.nightly-2017-11-22)
$ gauge init js
sample.cpt
with contents# This is a concept
* An unimplemented step
This is a concept
in example spec, multiple timessample.cpt
example.spec
displays error with the message 'Step implemetation not found`.Use the Explorer feature is VS code to implement a test explorer.
For e.g. refer Gitlens plugin
Snippets for specification, scenario and tables should be added for markdown files.
Snippet provided -
Key | Snippet |
---|---|
spec | Specification Heading |
sce | Scenario Heading |
table:1 | Table with 1 column |
table:2 | Table with 2 columns |
table:3 | Table with 3 columns |
table:4 | Table with 4 columns |
table:5 | Table with 5 columns |
table:6 | Table with 6 columns |
Ctlr-shift-p to display an command "Rerun failed scenario(s)" that will rerun failed scenarios.
Acceptance criteria
Test cases
Tests failed
Issues
Ability for a user to encrypt a parameter through a command or keystroke.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.