Skip to content

Releases: microsoft/testfx

v4.3.2

Choose a tag to compare

@Evangelink Evangelink released this 13 Jul 12:25
c3fdb81

See the release notes here

v4.3.0

Choose a tag to compare

@Evangelink Evangelink released this 08 Jul 20:12
79f26ff

See the release notes here

v4.2.3

Choose a tag to compare

@Evangelink Evangelink released this 14 May 15:35
35d2383

See the release notes here

v4.2.2

Choose a tag to compare

@Evangelink Evangelink released this 11 May 15:50
3ee14aa

See the release notes here

v4.2.1

Choose a tag to compare

@Youssef1313 Youssef1313 released this 07 Apr 08:53
02621de

See the release notes here

v4.1.0

Choose a tag to compare

@Youssef1313 Youssef1313 released this 04 Feb 09:22
26fb0d3

See the release notes here

v4.0.2

Choose a tag to compare

@Youssef1313 Youssef1313 released this 11 Nov 15:12
88c9fc5

See the release notes here

v3.11.1

Choose a tag to compare

@Youssef1313 Youssef1313 released this 11 Nov 15:12
cb5afc3

See the release notes here

v4.0.1

Choose a tag to compare

@Youssef1313 Youssef1313 released this 14 Oct 11:49
2eb19d5

See the release notes here

v4.0.0

Choose a tag to compare

@nohwnd nohwnd released this 07 Oct 19:03

What is new?

Assert.That

MSTest v4 adds a new type of assertion, that allows you to write any expression, and it will inspect the result to give you more information on failure. Providing a very flexible way to assert complicated expressions. Here a simple example:

[TestClass]
public sealed class Test1
{
    [TestMethod]
    public void TestMethod1()
    {
        var animal = "Tiger";
        var zoo = new Zoo();
        Assert.That(() => zoo.GetAnimal() == animal);
    }
}

public class Zoo
{
    public string GetAnimal()
    {
        return "Giraffe";
    }
}
Assert.That(() => zoo.GetAnimal() == animal) failed.
Details:
    animal = "Tiger"     
    zoo.GetAnimal() = "Giraffe"

CallerArgumentExpression

CallerArgumentExpression is consumed by all assertions, to make them aware of the expressions used in the assertion. In the example below, we now know what both the expected and actual values are. But also what value they come from, giving us opportunity to provide better error messages:

[TestClass]
public sealed class Test1
{
    [TestMethod]
    public void TestMethod1()
    {
        string animal = null;
        Assert.AreEqual("Giraffe", animal);
    }
}
Error Message: Assert.AreEqual failed. Expected:<Giraffe>. Actual:<>. 
'expected' expression: '"Giraffe"', 'actual' expression: 'animal'.

Breaking changes

We hidden many types that should have never been public in the first place. We believe that most of the changes won't have any real user impact. For the changes where we expect user impact migration guide from v3 is provided: https://learn.microsoft.com/dotnet/core/testing/unit-testing-mstest-migration-v3-v4

See the MSTest changelog here: https://github.com/microsoft/testfx/blob/main/docs/Changelog.md#4.0.0
See the Microsoft.Testing.Platform changelog here: https://github.com/microsoft/testfx/blob/main/docs/Changelog-Platform.md#2.0.0

Full changelog here: v3.11.0...v4.0.0