How to run tests in Nemerle project - unit-testing

How do I run tests which will test my nemerle code. So for example, I've a Calculator class and a CalculatorTests class in a nemerle project. I have already added a reference to nunit using package manager ("install-package nunit"). Now NUnit is available in nemerle project.
After writing following code
[TestFixture]
class CalculatorTests
{
[Test]
MyTest() : void
{
def result = Calculator().Add( 1 );
Assert.AreEqual( 2, result );
}
}
I tried to use TestDriven.net visual studio add-in to run the test but couldn't able to. Can someone tell me how to run tests in nemerle or do i have to write code to run all tests when executing a console app?

Maybe it caused by NUnit runs under .Net 2.0 runtime. Try to set a runtime version in the NUnit command line.

Related

Visual Studio for Mac not running unit tests from MSTest project

I've created a .NET Core 6 Web API project in Visual Studio for Mac. I can run the web API without issues and can interact with it using Swagger. I'm now attempting to create a MSTest project and write unit tests. I've written one however when I attempt to run it, Visual Studio for Mac appears not to do anything like so:
Unit Test:
namespace Tests;
[TestClass]
public class UnitTest1
{
[TestMethod]
public void ExampleTest()
{
var text = "hello.";
var result = text.ToUpperInvariant();
Assert.AreEqual("HELLO.", result);
}
}
Any ideas on what I'm missing?

Build and Execute Xamarin.iOS Unit Test from Command Line

I have been trying to run the iOS unit test from command line. I am using Xamarin Studio on Mac for now, I Created a iOS Unit test project as follows
Add New Project --> iOS --> Tests --> Unit Test App
And added a simple Unit test class and its code snippets as shown below:
using System;
using NUnit.Framework;
namespace iOSUnitTest
{
[TestFixture]
public class iOSTestSample
{
public iOSTestSample()
{
}
[Test]
public void MySampleTest() {
Assert.True(true);
}
[Test]
public void MyFailerTest()
{
Assert.False(true);
}
}
}
From Xamarin Studio, I am able to run the application which deploys a app into simulator and execute the test cases. I am trying to automate it through a script.
Till now, I am able to get the Unit Test project build and install the app into the running simulator.
I am not sure how to automate the unit test execution once the app is installed.
This blog post (and the ones linked( might be a bit out-dated but it shows you how to automate unit testing (both simulator and device builds) with the tools that ships with Xamarin.iOS.

Robolectric different threads in Android Studio vs. Gradle tests

why are thread names different when I start a Robolectric test from Android Studio vs. the Gradle build?
e.g. consider this simple test:
#RunWith(RobolectricTestRunner.class)
public class RobolectricRxThreadTest {
#Test
public void testMainThreadName() {
assertEquals("main", Thread.currentThread().getName());
}
}
when I start this test
directly in Android Studio (by pressing CTRL+SHIFT+F10) the test is okay
but when I start the gradle tests (e.g. from the Gradle projects view: :app - Tasks - verification - test, or from the Terminal view: ./gradlew test) it fails.
The thread name is Thread worker and not main as expected.
I just reproduced the issue, but I wonder why do you need this test?
If you really want to check main thread then the correct way would be:
assertThat(Thread.currentThread()).isEqualTo(Looper.getMainLooper().getThread());
And this test pass from AS and console both runs.

Issues using DataTestMethod and DataRow attributes in MS Test

I have installed MS Test V2 in my VS 2015 instance using nuGet and I have successfully added DataTestMethod and DataRow attributes to my unit tests and they compile, but now when I build, the tests don't show up in Test Explorer.
Example:
[DataTestMethod]
[DataRow("YAHOO", "GOOGLE")]
public void TestCheckSite(string site)
{
... do stuff here ...
}
What am I missing? Is there a Test Explorer upgrade?
[DataTestMethod]
[DataRow("YAHOO")]
[DataRow("GOOGLE")]
public void TestCheckSite(string site) {
...
}
Install MSTest Framework: https://www.nuget.org/packages/MSTest.TestFramework/
If you are building for .NET Core, then install this adapter: https://www.nuget.org/packages/dotnet-test-mstest/
However, if you are building for desktop .NET/UWP, install this adapter instead: https://www.nuget.org/packages/MSTest.TestAdapter/
Now write the tests and build your solution. The tests ought to show up in the Test Explorer.
Please let me know if you still do not see the tests showing up.

NUnit TestCaseAttribute causing AmbiguousMatchException with NUnit VS Adapter

I wrote a bunch of unit tests that utilized the TestCaseAttribute. These tests run great on my local machine when I use the ReSharper unit test runner. Unfortunately, when I run the tests through Visual Studio with the NUnit VS Adapter 2.0.0.0 I get the following output:
------ Run test started ------
NUnit VS Adapter 2.0.0.0 executing tests is started
Loading tests from D:\Projects\Ever\WebApp\Ever.UnitTests\bin\Debug\Ever.UnitTests.dll
Exception System.Reflection.AmbiguousMatchException,
Exception thrown executing tests in
D:\Projects\Ever\WebApp\Ever.UnitTests\bin\Debug\Ever.UnitTests.dll
NUnit VS Adapter 2.0.0.0 executing tests is finished
========== Run test finished: 0 run (0:00:00.8290488) ==========
We use the Visual Studio Online hosted build server for our build, and that relies on the test adapter to run our NUnit unit tests. This means I need to figure out a way to make this work with the attribute (much preferred) or I have to work around this limitation.
Do I have to abandon the use of the TestCaseAttribute because MSTest doesn't support parameterized tests1,2?
After further debuging and testing I've concluded that the TestCaseAttribute isn't the cause of the issue. I'm answering my own question instead of deleting1 in case anyone else falls into the same trap that I did.
The TestCaseAttribute works properly as you can see with the following tests. These tests run perfectly well via the VS Test Adapter and the ReSharper test runner.
[TestFixture]
public class SimpleReproAttempt
{
[Test]
[TestCase(true, false)]
[TestCase(false, true)]
public void DoesNotReproduceIssue(bool a, bool b)
{
Assert.IsTrue(a || b);
}
[Test]
[TestCase("", false, true)]
[TestCase(null, true, false)]
public void DoesNotReproduceIssue(string a, bool b, bool c)
{
Assert.IsTrue(b || c);
Assert.IsNullOrEmpty(a);
}
}
The issue seems to be present only in tests that have an overloaded method with at least one of the overloads using async/await.
1: Editing my question based on this information would turn this into a chameleon question, and a chameleon via self answer is discouraged so I dismissed that option as well.