HoNoSoFt.XUnit.Extensions 0.5.0

Attribute Extensions for XUnit.

Example: JsonFileData attribute

There is a newer version of this package available.
See the version list below for details.
Install-Package HoNoSoFt.XUnit.Extensions -Version 0.5.0
dotnet add package HoNoSoFt.XUnit.Extensions --version 0.5.0
<PackageReference Include="HoNoSoFt.XUnit.Extensions" Version="0.5.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add HoNoSoFt.XUnit.Extensions --version 0.5.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: HoNoSoFt.XUnit.Extensions, 0.5.0"
For F# scripts that support #r syntax, copy this into the source code to reference the package.

HoNoSoFt.XUnit.Extensions

XUnit extensions in order to have new attributes.

Attribute JsonFileData

This attribute is in order to use Json file. This attribute can be used in two different way.

  1. The easy and strongly typed version
    • Issue that can't be fixed due to XUnit framework: The display in test explorer will show 1, and all tests are combined. Basically it's because we use a strongly typed object and that the framework can't allow that.
  2. The bit more step, but somewhat strongly typed
    • Issue: Require a bit more typing

Lazy version

This will display as one global tests, if ran in command line, all tests will be counted properly.

public class MyTests {
  [Theory]
  [JsonFileData("./assets/sample.json", "data")]
  [JsonFileData("./assets/sample.json", "data2")]
  public void JsonFileAttribute(Sample mySample, string expectedResult)
  {
      Assert.Equal(expectedResult, mySample.SampleProp);
  }
}

public class Sample
{
    public string SampleProp { get; set; }
}

Discoverable in test explorer version

This will display as multiple global tests (one per JsonFileData), if ran in command line, all tests will be counted properly.

public class MyTests {

  [Theory]
  [JsonFileData("./assets/sample.json", typeof(Sample), "data")]
  [JsonFileData("./assets/sample2.json", typeof(Sample), "data2")]
  public void JsonFileAttribute(JsonData mySpecialJson, string expectedResult)
  {
      Assert.Equal(typeof(Sample), mySpecialJson.Data.GetType());
      Assert.Equal(expectedResult, (mySample.Data as Sample).SampleProp);
  }
}

public class Sample
{
    public string SampleProp { get; set; }
}

HoNoSoFt.XUnit.Extensions

XUnit extensions in order to have new attributes.

Attribute JsonFileData

This attribute is in order to use Json file. This attribute can be used in two different way.

  1. The easy and strongly typed version
    • Issue that can't be fixed due to XUnit framework: The display in test explorer will show 1, and all tests are combined. Basically it's because we use a strongly typed object and that the framework can't allow that.
  2. The bit more step, but somewhat strongly typed
    • Issue: Require a bit more typing

Lazy version

This will display as one global tests, if ran in command line, all tests will be counted properly.

public class MyTests {
  [Theory]
  [JsonFileData("./assets/sample.json", "data")]
  [JsonFileData("./assets/sample.json", "data2")]
  public void JsonFileAttribute(Sample mySample, string expectedResult)
  {
      Assert.Equal(expectedResult, mySample.SampleProp);
  }
}

public class Sample
{
    public string SampleProp { get; set; }
}

Discoverable in test explorer version

This will display as multiple global tests (one per JsonFileData), if ran in command line, all tests will be counted properly.

public class MyTests {

  [Theory]
  [JsonFileData("./assets/sample.json", typeof(Sample), "data")]
  [JsonFileData("./assets/sample2.json", typeof(Sample), "data2")]
  public void JsonFileAttribute(JsonData mySpecialJson, string expectedResult)
  {
      Assert.Equal(typeof(Sample), mySpecialJson.Data.GetType());
      Assert.Equal(expectedResult, (mySample.Data as Sample).SampleProp);
  }
}

public class Sample
{
    public string SampleProp { get; set; }
}

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version History

Version Downloads Last updated
1.1.0 5,327 9/4/2018
1.0.2 422 8/31/2018
1.0.1 374 8/31/2018
1.0.0 358 8/29/2018
0.5.0 369 8/28/2018