-
Notifications
You must be signed in to change notification settings - Fork 359
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 (make sure to boot VS, create new NTVS project, and open interactive window with NTVS 1.1 installed before upgrading.)
-
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 (make sure to boot VS, create new NTVS project, and open interactive window with NTVS 1.1 installed before upgrading.)
-
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 3): Install should complete
- ⭐Expected (VS 2015 RTM, VS 2015 + Update 1, VS 2015 + Update 2): Should receive an error message during install, and install should be aborted after clicking "Abort Install". 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 3
template -
Save the new project in
c:\src
- ⭐Expected: New project should open in Visual Studio without any error messages.
-
Wait for
npm install
to 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
,jade
andstylus
are listed under thenpm
node 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
app
is hit.
-
Continue program execution.
- ⭐Expected: The breakpoint in
routes/index
is 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
count
on 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
sum
variable in the source text.- ⭐Expected: A value of
3
is displayed.
- ⭐Expected: A value of
-
Hit
step over
in the debugger:- ⭐Expected: the program continues to the line
sum = count(5);
- ⭐Expected: Hovering over
sum now shows a value of
6`.
- ⭐Expected: the program continues to the line
-
Now hit
step into
in the debugger.- ⭐Expected: The debugger is now on the first line of the
count
function. - ⭐Expected: The callstack window lists an entry for
count
at 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 over
to get to the linereturn remaining + count(remaining - 1);
and then hitstep into
again- ⭐Expected: The debugger is now on the first line of the
count
function 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 out
in the debugger:- ⭐Expected: The debugger is now on the last line of the
count
function. - ⭐Expected: The callstack window lists one entry for
count
at 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 out
once 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 over
once:- ⭐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
-
Go to
Tools -> Options
and thenText Editor -> Node.js -> IntelliSense
.- ⭐Expected: Ensure you are in the
ECMAScript 6
IntelliSense 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.js
file 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.js
file- ⭐Expected: After typing the
.
, you should see a list of completions. - ⭐Expected:
arch
appears in the completions list, with a (non-warning) glyph to the left-hand side of it.
- ⭐Expected: After typing the
-
Change
hello/item1.js
to:
var fs = require('fs');
fs.
- ⭐Expected: List of completions should be displayed after typing the
.
infs.
- ⭐Expected:
writeFile
Exists in the completions list, with a (non-warning) glyph to the left-hand side of it.
- Change
hello/item1.js
to:
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 witha
andb
. - ⭐Expected: completion list items
a
andb
have a (non-warning) glyph to the left-hand side of them.
- Now select the completion for
b
so that the text file looks like this:
var item = require('./hello/item1');
item.b
- Hover over the
b
and hitF12
.
- ⭐Expected: Editor opens ``hello/item1
file and highlights the
module.exports.b = ...` line
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-dev
in 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
azure
is now listed in thenpm -> Dev
node 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 App
template -
Save the new project in
c:\src
- ⭐Expected: New project should open in Visual Studio without any error messages.
-
Wait for
npm install
to complete:- ⭐Expected: A yellow bar like this should show up in the solution explorer
- ⭐Expected: A
typings
file should have been added to the project and included in Visual Studio. Verify that it contains files fornode
andexpress
-
Open the
app.js
top level file. -
At the end of the file, type
path.
- ⭐Expected: After typing the
.
, you should see a list of completions forpath
, includingbasename
anddelimiter
- ⭐Expected: completion list items
path
,basename
, anddelimiter
have (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, includingall
andapply
- ⭐Expected: completion list items
all
,apply
have (non-warning) glyphs to the left-hand side of them.
- ⭐Expected: After typing the
-
Turn off Automatic typings acquisition in
Tools -> Options
and thenText Editor -> Node.js -> IntelliSense
withAutomatically add IntelliSense typings folder to Node.js project
. Try running through the same scenario. You should NOT see a yellow warning and atypings
file should NOT be included in the project now. -
Switch to
ECMAScript 5
IntelliSense inTools -> Options
and thenText Editor -> Node.js -> IntelliSense
and try running through the same scenario. You should NOT see a yellow warning and atypings
file 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 typings
option 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 --save
in the interactive window and wait for the command to complete.- ⭐Expected:
underscore
should now be listed in thenpm
node of the Solution Explorer.
- ⭐Expected:
-
Check that typings were also installed for
underscore
- ⭐Expected: In the
typings
directory, there is a folder calledunderscore
containing a file calledunderscore.d.ts
. - ⭐Expected: The
underscore.d.ts
file 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
, includingapply
andfirst
- ⭐Expected: Completion list items
apply
andfirst
have (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.