Is there a way to associate and execute protractor tests to MTM test cases? - visual-studio

Here's the background:
I've wrote my tests in protractor#visual studio and got it running successfully with the help of this guide;
Checked the project into TFS;
Now, my intention is to associate my protractor tests to microsoft case tests, then i intent to run against a environment (SCVMM).
I tried Coded Ui Test, but i found then a little bit slow.
Is there a way that i can get this done?
Thanks.

What I did was use Generic Tests to accomplish this.
Each Generic Test you create can represent a Protractor test. I just named them similarly. Then you can link the Generic Test to the MTM test. Simple as that.
I took it a step further and set the Generic Test up in such a way that it runs the Protractor test. This is really nice because Visual studio will recognize these tests in Test Explorer. So no more command prompt :)
Here's an example of one of mine:

Related

How to setup a Jasmine / Chutzpah unit tests project running TypeScript files?

I have tried setting up a unit-tests project to cover front-end code in TypeScript with Jasmine and Chutzpah, but have a hard time figuring out what I'm doing wrong.
I have created a sample ASP.NET projet in which I have extracted and included the default jasmine tests. Pressing F5 opens a browser and makes the tests pass.
I have then converted all the tests to TypeScript and included its definitely typed definitions. Pressing F5 opens a browser and makes the tests pass.
I have finally installed Chutzpah with its Visual Studio extension, but I'm not able to either make the tests pass using the Visual Studio/Resharper Unit Tests window or the default chutzpah console. At this stage, pressing F5 still opens a browser and makes the tests pass.
That's the last step I'm struggling with. For clarity of the discussion, I have setup a sample projet on GitHub to reproduce my problem. I'm sure it must be something really simple but I just cannnot figure it out.
The project can be found at the following location:
https://github.com/springcomp/TypeScript.Jasmine.Chutzpah.Sample
This doesn't really answer the 'Why', I'm still trying to get my head round this myself. However it might get you a bit further forward..
I saw the same behavior when I pulled down your project. If I put the below reference paths in at the top of the PlayerSpec.ts :
///<reference path="../src/Player.ts"/>
///<reference path="../src/Song.ts"/>
///<reference path="../spec/SpecHelper.ts"/>
///<reference path="../Scripts/typings/jasmine/jasmine.d.ts"/>
After this Resharper runs the tests successfully with them passing.
I can't explain why - maybe resharper doesn't use the SpecRunner file for picking up references?

Does Nunit have a way of alerting me a test has failed when an If validation fails

I have imported my Visual Studio Tests into Nunit Test Runner. The tests are set up using If Validations so the tests will run all the way through. The Tests are written in C# using Selenium Webdriver to drive them with an Nunit Framework. After I run the Test i see Pass but I see 0 Assertions which is correct because I never added them but I did add If's should I see an output of some kind to these failing like I would in Visual Studio?
I have goggled this and looked through Nunit documentation and Visual Studio and not found the exact answer.
Looks like you want to check a few cases within the same test. This is not a good idea. Here is a good explanation why.
If you rewrite tests with the single-assert-per-test approach then you will see it is OK to use assertions rather than validations. Assertions will work exactly how you do need:
They don't interfere other cases (because the other cases are in the other tests)
They alert NUnit that each validation is failed (because that is what alerts for).
Hope that helps.
you can use multiple assertions in a single test case. I have used this approach with MSTest (Not with NUnit). You can use try catch blocks in your test case. This will allow you to catch the failed Assertions and your test will continue. At the end of test case, you can check the number of failed assertions. If the count is greater than 1, you can forcefully fail that test case, else you can continue to your next test case.
This approach is explained with example in this blog post.
http://www.binaryclips.com/2016/03/coded-ui-test-testing-all-assertions-in.html

Can ReSharper run unit tests automatically

Is it possible to automatically run unit tests while you work without compiling or running them manually? I am aware that NDepend allows you to do so, but I would prefer to use the ReSharper suite.
This has been available since dotCover 10. See the dotCover documentation for details.
This adds a new panel "Continuous Testing Session" as well as a new status icon in the gutter.
Note that Visual Studio also has this feature, known as Live Unit Testing.
Not possible with Resharper at the moment, you will need something like NCrunch that runs your unit tests continuously in the background, highlighting code that breaks them as you write it and fails your tests.
Edit: At the time of my response it wasn't possible to do this with ReSharper but now in Version 10 it is, see Drew Noakes's answer. You could still give NCrunch a try as it continuously runs your tests in the background even without doing an explicit save.

easiest way to get continual unit tests running locally with visual alerts, with xUnit for C#/VS2008?

I'm currently using MSTest in VS2008 for unit tests, but I am looking at going to xUnit.net.
Question - What would be the easiest way to get my unit tests running continually locally (on my PC) and with some sort of visual alert of pass / # of fails.
i.e. similar to what we do in Ruby on Rails with autospec.
THanks
PS Intersested in hearing of the simplest open source option too.
You should also ask this on http://xunit.codeplex.com/Thread/List.aspx
There's an xUnit GUI runner and it has an auto-reload when DLLs get touched.
The missing bit is the auto-rerun of the last of executed tests when that happens. The minute we have that, you're just a Shift F6 (compile current project) away from waht you want.
The xunit.net guys are normally quite responsive, and avote on [my] http://xunit.codeplex.com/WorkItem/View.aspx?WorkItemId=8832 would help.
Regarding your other comment - I really believe xUnit.net is worth your effort using. You won't look back.
Resharper's test runner runs within VS, can run just a single test or a whole suite, and appears to support xUnit with a plugin.

Is there an API for running Visual Studio Unit Tests programmatically?

Is there an API for running Visual Studio Unit Tests programmatically?
Running MSTests.exe with Process.Start() does not work in the current scenario. What I'm looking for is something like the NUnit SimpleTestRunner.
Any ideas?
/Erik
You're correct in that there's no public API for the mstest framework. I wrote a manual replacement for mstest one day to see how hard it was, and it's not as simple as it looks (particularly if you want to take advantage of more than one CPU core), so beware of going down this path.
Personally I've always just run mstest.exe programatically and then parsed the resulting .trx XML file. Are there any particular reasons why you can't use Process.Start to run it?
P.S. Some of the strange behaviour of mstest.exe are solved if you pass the /noisolation command line parameter - give that a go if you feel so inclined :-)
Update: Erik mentions he wants to run the test API in the current thread so he can set the thread culture for globalization issues.
If you run a unit test under the debugger, you'll notice that mstest creates a bunch of threads, and runs all your tests in different threads, so this isn't likely to work even if you could access the API.
What I'd suggest doing is this:
From your test "runner" application, set an environment variable
Run mstest pointing it at the specific tests
Add a [ClassInitialize] (or [TestInitialize]) method which reads this environment variable and sets the culture
Profit!
After taking a deep dive with reflector into MSTest.exe and further down into the Visual Studio Unit Test stack, I found that the API used by MSTest is sealed up and made private so that i cannot be used from the outside.
Why not using Reflector and seeing how NUnit SimpleTestRunner is running the tests... And then use this technique...
You can make use of the Microsoft REST API's for TFS to run ms tests. Please refer to the documentation here.
I've linked to "Call a Rest API" so that you can see how you'd go about calling one of the REST API's for TFS.
Note that if your tests are linked to the build, they should run automatically every time a build is queued.
Here is the link to Run Functional Tests.
I've also discovered an article on using the TFS SDK API to run tests. Here is that link as well: Link to API Article

Resources