How to set up Unity Test Tools on Unity 5 - c#

I'm trying to figure out how to make it work. The documentation is slim to say the least on this important topic.
The small amount of tutorials I found make reference to options not even present when I open the tool. I don't see the Unit Test Runner, just the Integration Test runner. (version 5.3.1f1)
How to add a test? How to run it?
Integration Test runner allows you to add a test, but I was unable to find how to write the actual test.
It's sad that there's almost no documentation on this anywhere, or at least I haven't found it.

The Unity Test Tools are already included in Unity starting with Version 5.3. Even without downloading the Unity Test Tools from the Asset Store you should be able to find the "Editor Test Runner" in the Window menu. This is basically the Unit Test runner. For other features such as Assertions, Integration tests etc. you still need the Unity Test Tools bundle from the Asset Store.
The test tools use NUnit internally, so you can write tests using the standard NUnit API as described here http://www.nunit.org/index.php?p=quickStart&r=2.6.3.
There is also a Unity tutorial video here: https://unity3d.com/learn/tutorials/modules/beginner/live-training-archive/test-tools.
Make sure to put your Tests into an Editor folder.
Also note that some features like Assertions are not supported for Windows Store Apps and you won't even be able to build for this platform as long as you have those libraries in your project.

Related

Xamarin (Android) Unit Tests in Visual Studio 2017

I'm using Visual Studio 2017 to develop Xamarin Android application. I want to add simple unit tests of logic only. For that purpose, I tried adding "Unit Test App (Android)" or "Class Library (Android)" projects with unit tests and none of them work.
Unit Test App (Android)
I add new project to my solution of type "Unit Test App (Android)". Generated project contains TestsSample class with sample tests, but I have no idea how to launch them. I have ReSharper installed, but when right clicking on the project/class I don't have option to run the tests.
When I go to "Test" -> "Run" -> "All tests", the solution is built, but nothing more happens.
Class Library (Android) with nUnit
The other trial was to add new project of type "Class Library (Android)" to the solution. After, I installed nUnit nuget package (install-package nunit which installed package 'nunit.3.6.1' with respect to project 'MoneyBack.Tests', targeting 'MonoAndroid,Version=v6.0'), installation was successful.
I added the following class:
using NUnit.Framework;
namespace MoneyBack.Tests
{
[TestFixture]
public class Class1
{
[Test]
public void SampleTest()
{
Assert.IsTrue(true);
}
}
}
Now when right-clicking on the tests project I see ReSharper's option "Run Unit Tests", so I clicked it and got the following exception:
Am I doing something wrong ? Or it's the issue with VS2017 ? I don't know if I should install VS2015 back or there is some solution. Thanks for your help!
There are three basic levels of testing:
The classic unit testing of pure .Net/Mono code via xUnit|NUnit
Nothing new here, this is the same testing that .Net programmers have been doing all long and has nothing to do with the Xamarin platform frameworks
Note: These tests are totally independent of Xamarin.Android|iOS|Mac
On platform testing (including platform features)
Note: There are multiple on device testing wrappers for NUnit, XUnit, etc... Xamarin includes a NUnitLite version that runs on Android and iOS and that provide a device specific UI to run those tests. Xamarin has templates that create a Unit Test App project for Android or iOS.
Note: These tests can include platform dependent features (Networking, Bluetooth, GPS, SMS, etc... but no GUI related tests) and can also reference Nunit [Test]s written in PCL-based assemblies or platform-specific libraries.
Xamarin.iOS Unit Testing
Xamarin.Mac Unit Testing via GUIUnit
Xamarin.Android Setup and Automating
Alternatives to NUnitLite:
xUnit.net Runners for Devices
NUnit test runners for Xamarin and mobile devices
UI Testing
A Casabash/Appium/... driven tests of the UI elements in your application and their reaction to input (touch) events.
Test Cloud/Mobile Center and/or other local, public or private mobile test clouds
Xamarin Test Cloud
Test are run from the device itself not directly from the code as we are used to. Do this:
1. set you android project as VS startup project
2. Select the harware or simulator that you want to execute the unit test project
3. Run it
4. The unit test project will be deployed and executed in the device.
5. Tap on the line with the project name. The available tests will appear. Tap each one for execution and debug ! :)
You need to install nUnit 2.6.X for using xamarin.UItest.
nUnit 3 is not supported.

Selenium (Nunit) with MTM (Microsoft Test Manager)

I want to perform automated test with Selenium,Nunit,TFS and MTM.
As i'm trying to find a way to run my selenium code using Nunit with MTM, i've searched alot regarding this but didn't find required solution as most of the people gave solution using MStest not with nunit after this i want to see my test case result on MTM.
Answer will be highly appreciated.
Based on my experience (lots of trial and error), you can only Associate Automation with an MSTest Test Method, to test cases in MTM.
A solution I've used with Selenium, NUnit and TFS is to use the VNext builds to run my tests, and use the build status to track the test results (including widgets on the dashboard).

How we can automatically run the test methods in .net?

I need to run all the test methods once at a time automatically.
I have separate test methods written in separate files.
Is there any way to run all the test methods at a time automatically.
Please suggest if any.
Continuous Tests: http://continuoustests.com/ is a free automated test runner that supports the .NET and Mono platforms. I don't think it has a command line version.
Gallio http://www.gallio.org/ has a command line runner and a GUI runner (Icarus). I use it but I am not sure if it will do automated or continuous test runs
NCrunch http://www.ncrunch.net/ is also an automated test runner that works in Visual Studio. It used to be free but is now payware.
IF you are using NUnit you can use the NUnit GUI. Another option that is mostly framework agnostic is TestDriven.Net.

C# automatic testing of code

One of my colleague working in java write test cases for his development. As he rebuild, all his testcases will execute on his code and result either fail or passed.
I am workin in .NET, I would like to do similar approach for my application (TDD). Which will perform this automated testing of my code.
What is best approach for writing test cases for window service. We have VS2010 testing, Nunit and CSUnit?
Can anyone give examples for it as I never done this before?
I am fetching some WMI data in service and performing some rest calls, what would be testcases for such operations?
Thanks
There is a lot of discussion on the web concerning unit test frameworks. It seems that it's matter of personal taste and what you need to get done. The functionality between the frameworks is usually very similar. Here are a couple of links about comparing available unit test frameworks.
Unit Testing Frameworks - What are the key features
.NET Unit Testing packages?
NUnit vs Visual Studio 2008's Test Projects for Unit Testing?
Personally i recommend NUnit. It has been around for a long time and it's very mature. And it's free! You can find detailed documentation on the project's homepage. Here is a quick start article.
It's probably not a good idea to test against the running windows service, because that would be an integration test ... That includes: Does the service run with the right permissions, is the deployment complete etc.
It's better to test the functionality of your windows service classes directly by referencing the DLLs from your testing framework.
Therefore it doesn't matter if you use NUnit, Visual Studio Testing or what ever. That depends on your favors.

Is there a Visual Studio Load Test open source equivalent - or something close?

In Visual Studio Team Edition there is a load test tool where you can select unit tests, integration tests etc... to form scenarios which are then used in a load test session with different configurations for example varying usage levels.
Looking at for example the NUnit framework, it would be possible to develop a form of such a tool, along with a base load testing code base, but I was interested if anyone knows of any open source project which has has already done a similar thing which could then be of use for this situation and possibly extended?
Cheers for now,
Andrew
Does this help?
http://www.webload.org/
It's only a load tester, not also built with Unit Tests, Integration Tests, etc - However how about a Continuous Integration setup with CruiseControl.NET as your CI Server which would run automated builds and carry out the tests and then use Webload for your load testing? You can certainly get CruiseControl.NET to run external tools - but IDK whether or not Webload has a console which could automatically run the load tests for you - but it probably could ;)

Categories