-
Notifications
You must be signed in to change notification settings - Fork 355
NTVS 1.3 Manual Test Matrix
Manual testing matrix and test scenarios for NTVS 1.3
- Windows versions:
- Windows 8.1
- Windows 10
-
Install Visual Studio 2017 Enterprise + the Node.js Workload
-
Install Node.js (test all versions)
- Node.js v6.9.1 x86
- Node.js v4.4.5 x86
Checks creation of new NTVS projects from templates.
None
-
Go to
File -> New -> Project -
Select the
Templates -> JavaScript -> Node.js -> Basic Azure Node.js Express 4 Applicationtemplate -
Save the new project in
c:\src- ⭐Expected: New project should open in Visual Studio without any error messages.
-
Wait for
npm installto finish executing in the background (see details in the Output npm pane)- ⭐Expected: Results of npm install command are printed to output pane.
- ⭐Expected: No error messages were printed to the output pane.
- ⭐Expected:
expressandpugare listed under thenpmnode of the solution explorer.
Also run through this entire scenario using a new Typescript project, from the template: Templates -> TypeScript -> Node.js -> Basic Azure Node.js Express 4 Application
Checks basic running and debugging functionality.
Complete after Create New Project, and make sure to run this scenario for all cases 💼 of that scenario.
- Set a breakpoint in app.js on the line (or app.ts):
var app = express()- Set a breakpoint in
routes\index.js(orroutes\index.ts) at the line that begins with:
res.render('index'-
F5 to start debugging
- ⭐Expected: Ensure the browser launches (http://localhost:1337)
- ⭐Expected: The first breakpoint is
appis hit.
-
Continue program execution.
- ⭐Expected: The breakpoint in
routes/indexis hit.
- ⭐Expected: The breakpoint in
-
Continue program execution.
- ⭐Expected: In the browser, the page now loads successfully.
Checks basic debug stepping
None
Templates -> JavaScript -> Node.js -> Blank Node.js Console Application- In
app.js(orapp.ts), enter the following text:
function count(remaining) {
if (remaining <= 0)
return 0;
return remaining + count(remaining - 1);
}
var sum = 0;
sum = count(3);
sum = count(5);-
Set a breakpoint in
counton the linesum = count(3); -
Start debugging the program.
- ⭐Expected: Program runs to the line
sum = count(3);
- ⭐Expected: Program runs to the line
-
Hover over the
sumvariable in the source text.- ⭐Expected: A value of
0is displayed.
- ⭐Expected: A value of
-
Hit
step overin the debugger:- ⭐Expected: the program continues to the line
sum = count(5); - ⭐Expected: Hovering over
sum now shows a value of6`.
- ⭐Expected: the program continues to the line
-
Now hit
step intoin the debugger.- ⭐Expected: The debugger is now on the first line of the
countfunction. - ⭐Expected: The callstack window lists an entry for
countat the top of the stack. - ⭐Expected: The value of
remainingis 5.
- ⭐Expected: The debugger is now on the first line of the
-
Hit
step overto get to the linereturn remaining + count(remaining - 1);and then hitstep intoagain- ⭐Expected: The debugger is now on the first line of the
countfunction again. - ⭐Expected: The callstack window list two entries for count on the top of the stack.
- ⭐Expected: The value of remaining is now 4.
- ⭐Expected: The debugger is now on the first line of the
-
Hit
step outin the debugger:- ⭐Expected: The debugger is now on the last line of the
countfunction. - ⭐Expected: The callstack window lists one entry for
countat the top of the stack. - ⭐Expected: The value of remaining is 5.
- ⭐Expected: The debugger is now on the last line of the
-
Hit
step outonce again:- ⭐Expected: The debugger is now on the line
sum = count(5) - ⭐Expected: The callstack does not have any entries for count.
- ⭐Expected: The debugger is now on the line
-
Hit
step overonce:- ⭐Expected: The debugger is now on the line after
sum = count(5) - ⭐Expected: The value of sum is
15
- ⭐Expected: The debugger is now on the line after
Also run through this entire scenario using a new Typescript project, from the template: Templates -> TypeScript -> Node.js -> Blank Node.js Console Application
Checks basic profiling functionality.
Complete after Create New Project, and make sure to run this scenario for all cases 💼 of that scenario.
- Walk through the "Profiling" and "Start your profiling session" sections in the Profiling docs.
- ⭐Expected: Verify behavior is as expected and results look like they do in all screenshots.
Checks that management of Node packages using the NPM GUI.
Complete after Create New Project, and make sure to run this scenario for all cases 💼 of that scenario.
- Walk through the "Browsing/Installing new npm packages in the GUI" documentation
- ⭐Expected: Verify behavior is as expected and results look like they do in all screenshots.
Try switching to VS themes and running through the scenario again. Make sure things are readable and nothing looks out of place in the NPM window.
Ensure that the test explorer works as expected.
Complete after Create New Project, and make sure to run this scenario for all cases 💼 of that scenario.
- Walk through the Test Explorer documentation
- ⭐Expected: Verify behavior is as expected and results look like they do in all screenshots.
Checks that basic IntelliSense functions as expected.
None
-
File -> New Project -> JavaScript -> Node.js -> Blank Node.js Console Application -
Create a new directory named
hello. -
Right click on the directory to add a new javascript item
item1.js- ⭐Expected:
hello/item1.jsfile should now exist and be open in editor. - ⭐Expected: The top of the editor does have a dropdown bar dropdowns.
- ⭐Expected:
-
Type
process.in thehello/item1.jsfile- ⭐Expected: After typing the
., you should see a list of completions. - ⭐Expected:
archappears in the completions list, with a (non-warning) glyph to the left-hand side of it.
- ⭐Expected: After typing the
-
Change
hello/item1.jsto:
var fs = require('fs');
fs.- ⭐Expected: List of completions should be displayed after typing the
.infs. - ⭐Expected:
writeFileExists in the completions list, with a (non-warning) glyph to the left-hand side of it.
- Change
hello/item1.jsto:
module.exports.a = 3;
module.exports.b = "hi";- Back in
app.js, add the following at the end of the file:
var item = require('./hello/item1');
item.- ⭐Expected: List of completions should be displayed after typing the
.initem., starting withaandb. - ⭐Expected: completion list items
aandbhave a (non-warning) glyph to the left-hand side of them.
- Now select the completion for
bso that the text file looks like this:
var item = require('./hello/item1');
item.b- Hover over the
band hitF12.
- ⭐Expected: Editor opens ``hello/item1
file and highlights themodule.exports.b = ...` line
Interactive window can evaluate expressions and run simple npm commands.
Complete after Create New Project, and make sure to run this scenario for all cases 💼 of that scenario.
-
With an open project.
-
Open the Node.js Interactive Window using
Ctrl+K,N- ⭐Expected: Node.js Interactive window should now be open with no error messages.
-
Run
var a; a = [1, 2, 3].map(function(x) { return x * x; })- ⭐Expected: The result
[ 1, 4, 9]is printed
- ⭐Expected: The result
-
Press the up arrow.
- ⭐Expected: The previous command (
var a; a = [1, 2, 3].map(function(x) { return x * x; })) should now be in the active buffer.
- ⭐Expected: The previous command (
-
Clear the active buffer and enter
a.- ⭐Expected: The result
[ 1, 4, 9]is printed again.
- ⭐Expected: The result
-
Run
.npm install azure --save-devin the interactive window and wait for the command to complete- ⭐Expected: There are no error or warning messages.
- ⭐Expected: The output is readable and doesn’t include any odd characters.
- ⭐Expected: An entry for
azureis now listed in thenpm -> Devnode in Solution Explorer.
Interactive window can evaluate expressions when no projects are loaded
None
-
Without any open project (such as first boot of VS)
-
Open the Node.js Interactive Window using
Ctrl+K,N- ⭐Expected: Node.js Interactive window should now be open with no error messages.
-
Run
var a; a = [1, 2, 3].map(function(x) { return x * x; })- ⭐Expected: The result
[ 1, 4, 9]is printed
- ⭐Expected: The result
-
In current project.
-
Open the
Node.js interactive Window:Tools -> Node.js Tools -> Node.js Interactive Window -
Run
.npm install underscore --savein the interactive window and wait for the command to complete.- ⭐Expected:
underscoreshould now be listed in thenpmnode of the Solution Explorer.
- ⭐Expected:
-
Open any Javascript file.
-
At the end of the file, type:
var _ = require('underscore');
_.- ⭐Expected: After typing the
., you should see a list of completions forunderscore, includingapplyandfirst - ⭐Expected: Completion list items
applyandfirsthave (non-warning) glyphs to the left-hand side of them