-
Notifications
You must be signed in to change notification settings - Fork 355
NTVS 1.2 Manual Test Matrix
Manual testing matrix and test scenarios for NTVS 1.2
-
Windows versions:
-
Windows 7
-
Windows 8.1
-
Windows 10
-
Install Visual Studio, select custom settings, and make sure the Web Tools component is checked during the install.
-
Visual studio 2015 + Update 2, Visual Studio 2015 + Update 3 (latest bits) 1. Community 2. Enterprise (and Pro) 3. Express for Web
-
Additionally, please run a partial test on the following (single-configuration only, only walk through setup steps, not scenarios) 1. Visual Studio 2015 RTM 2. Visual Studio 2015 + Update 1
-
Language settings
-
English VS on English Windows
-
Chinese VS on English Windows
-
German VS on English Windows
-
English VS on Chinese Windows
-
Chinese VS on Chinese Windows
-
English VS on German Windows
-
German VS on English Windows
-
Install Version of NTVS to upgrade from (to test upgrade paths):
-
VS 2015 RTM: 1. No previously installed NTVS version
-
VS 2015 + Update 1: 1. NTVS 1.1: http://aka.ms/ntvs.1.1.2015
-
VS 2015 + Update 2, VS 2015 + Update 3 (latest bits): 1. No previously installed NTVS version 2. NTVS 1.1: http://aka.ms/ntvs.1.1.2015
-
Install Version of NTVS to upgrade to (NTVS 1.2): https://github.com/Microsoft/nodejstools/releases/download/v1.2.Dev-6.13.2016/NTVS.Dev.2016-06-13.VS.2015.msi
- ⭐Expected (VS 2015 + Update 2, VS 2015 + Update 3): Install should complete
- ⭐Expected (VS 2015 RTM, VS 2015 + Update 1): Should receive an error message during install, and install subsequently aborted. Test pass for this configuration is complete - do not run through further scenarios.
- Install Node.js (test all versions)
- Node.js v6.2.1 x86: https://nodejs.org/dist/v6.2.1/node-v6.2.1-x86.msi
- Node.js v6.2.1 x64: https://nodejs.org/dist/v6.2.1/node-v6.2.1-x64.msi
- Node.js v4.4.5 x86: https://nodejs.org/dist/v4.4.5/node-v4.4.5-x86.msi
- Node.js v4.4.5 x64: https://nodejs.org/dist/v4.4.5/node-v4.4.5-x64.msi
- Node.js v0.12.14 x86: https://nodejs.org/dist/v0.12.14/node-v0.12.14-x86.msi
- Node.js v0.12.14 x64: https://nodejs.org/dist/v0.12.7/x64/node-v0.12.14-x64.msi
- Install Azure Tools [optional, but required for web publishing support]
- Azure Tools for VS 2015: http://go.microsoft.com/fwlink/?LinkId=534216
- [OPTIONAL] Other extensions
- Web Essentials 1. VS 2015: https://visualstudiogallery.msdn.microsoft.com/ee6e6d8c-c837-41fb-886a-6b50ae2d06a2
- ReSharper: https://www.jetbrains.com/resharper/
Checks creation of new NTVS projects from templates.
None
-
Go to
File -> New -> Project -
Select the
Templates -> JavaScript -> Node.js -> Starter Azure Node.js Express 3template -
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:
express,jadeandstylusare 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 -> Starter Azure Node.js Express 3
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
File -> New Project -> 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
3is 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 remaining is 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.
Complete after Create New Project, and make sure to run this scenario for all cases 💼 of that scenario.
-
Go to
Tools -> Optionsand thenText Editor -> Node.js -> IntelliSense.- ⭐Expected: Ensure you are in the
ECMAScript 6IntelliSense mode (listed at the top of the options page).
- ⭐Expected: Ensure you are in the
-
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: In "ECMAScript 5"-mode, the top of the editor does not have a dropdown bar.
- ⭐Expected: In "ECMAScript 6" mode, 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.
Switch to ECMAScript 5 intellisense in Tools -> Options and then Text Editor -> Node.js -> IntelliSense and make sure Full IntelliSense is selected. Start the scenario from scratch, and try running through it again.
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
Make sure ECMAScript 6 IntelliSense is enabled in Tools -> Options and then Text Editor -> Node.js -> IntelliSense
-
Go to
File -> New -> New Project -
Select the
Templates -> JavaScript -> Node.js -> Basic Node.js Express 4 Apptemplate -
Save the new project in
c:\src- ⭐Expected: New project should open in Visual Studio without any error messages.
-
Wait for
npm installto complete:- ⭐Expected: A yellow bar like this should show up in the solution explorer
- ⭐Expected: A
typingsfile should have been added to the project and included in Visual Studio. Verify that it contains files fornodeandexpress
-
Open the
app.jstop level file. -
At the end of the file, type
path.- ⭐Expected: After typing the
., you should see a list of completions forpath, includingbasenameanddelimiter - ⭐Expected: completion list items
path,basename, anddelimiterhave (non-warning) glyphs to the left-hand side.
- ⭐Expected: After typing the
-
Now type
app.- ⭐Expected: After typing the
., you should see a list of completions for the express app, includingallandapply - ⭐Expected: completion list items
all,applyhave (non-warning) glyphs to the left-hand side of them.
- ⭐Expected: After typing the
-
Turn off Automatic typings acquisition in
Tools -> Optionsand thenText Editor -> Node.js -> IntelliSensewithAutomatically add IntelliSense typings folder to Node.js project. Try running through the same scenario. You should NOT see a yellow warning and atypingsfile should NOT be included in the project now. -
Switch to
ECMAScript 5IntelliSense inTools -> Optionsand thenText Editor -> Node.js -> IntelliSenseand try running through the same scenario. You should NOT see a yellow warning and atypingsfile should NOT be included in the project now. -
Try creating an Express typescript project instead of a Javascript project. Typings should not be downloaded.
-
Try Disabling the
Show status bar after adding typingsoption and running the scenario again. A typings folder should be downloaded but no yellow status message should appear.
Make sure that Automatic Typings Acquisition for new Javascript Project works first.
Make sure ECMAScript 6 IntelliSense is enabled in Tools -> Options and then Text Editor -> Node.js -> IntelliSense
-
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:
-
Check that typings were also installed for
underscore- ⭐Expected: In the
typingsdirectory, there is a folder calledunderscorecontaining a file calledunderscore.d.ts. - ⭐Expected: The
underscore.d.tsfile is also included in the project.
- ⭐Expected: In the
-
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
Typings acquisition should not happen the same case listed in Automatic Typings Acquisition for new Javascript Project.