HoNoSoFt.XUnit.Extensions
1.1.0
dotnet add package HoNoSoFt.XUnit.Extensions --version 1.1.0
NuGet\Install-Package HoNoSoFt.XUnit.Extensions -Version 1.1.0
<PackageReference Include="HoNoSoFt.XUnit.Extensions" Version="1.1.0" />
paket add HoNoSoFt.XUnit.Extensions --version 1.1.0
#r "nuget: HoNoSoFt.XUnit.Extensions, 1.1.0"
// Install HoNoSoFt.XUnit.Extensions as a Cake Addin #addin nuget:?package=HoNoSoFt.XUnit.Extensions&version=1.1.0 // Install HoNoSoFt.XUnit.Extensions as a Cake Tool #tool nuget:?package=HoNoSoFt.XUnit.Extensions&version=1.1.0
HoNoSoFt.XUnit.Extensions
XUnit extensions in order to have new attributes.
Available attributes
Name | Short Description |
---|---|
FileData |
Read the content as is as string |
JsonFileData |
Read the content and try to cast to the desired object (see next section) |
XmlFileData |
Read the content and try to cast to the desired object (Same as JsonFileData ) |
BinaryFileData |
Read the content and send the content as byte[] |
Attribute JsonFileData
This attribute is in order to use Json file. This attribute can be used in two different way.
- 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.
- 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.
Also, it's important to note that even if the serialization happens, we still keep the original data available in the attribute Original
. For example mySpecialJson.Original
will contains the raw file content.
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; }
}
Attribute XmlFileData
This attribute works the same way as the Json attribute.
Contributor(s)
At the moment, no specific contributor except the author @Nordes 😉.
License
MIT (Enjoy)
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Newtonsoft.Json (>= 11.0.2)
- xunit.core (>= 2.4.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.