Sungaila.InlineTest
0.9.0-preview
Prefix Reserved
This is a prerelease version of Sungaila.InlineTest.
There is a newer version of this package available.
See the version list below for details.
See the version list below for details.
dotnet add package Sungaila.InlineTest --version 0.9.0-preview
NuGet\Install-Package Sungaila.InlineTest -Version 0.9.0-preview
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Sungaila.InlineTest" Version="0.9.0-preview" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Sungaila.InlineTest --version 0.9.0-preview
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Sungaila.InlineTest, 0.9.0-preview"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Sungaila.InlineTest as a Cake Addin #addin nuget:?package=Sungaila.InlineTest&version=0.9.0-preview&prerelease // Install Sungaila.InlineTest as a Cake Tool #tool nuget:?package=Sungaila.InlineTest&version=0.9.0-preview&prerelease
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
InlineTest
A C# source generator for quick creation of simple unit tests. Just add these attributes to your method:
[AreEqual]
[AreNotEqual]
[IsTrue]
[IsFalse]
[IsNull]
[IsNotNull]
[IsInstanceOfType<T>]
[IsNotInstanceOfType<T>]
[ThrowsException<T>]
[AreEqual(6, 3, Expected = 2)]
[AreEqual(1, 1, Expected = 1)]
[AreNotEqual(10, 1, NotExpected = 42)]
[ThrowsException<ArgumentOutOfRangeException>(1, 0)]
public static int Divide(int dividend, int divisor)
{
if (divisor == 0)
throw new ArgumentOutOfRangeException(nameof(divisor));
return dividend / divisor;
}
The source generator will produce classes containing the matching unit tests.
[GeneratedCode("Sungaila.InlineTest", "0.9.0-debug+17ac90a4b0b471c88edc5fcedee4124a7cbbac28")]
[TestClass]
public partial class ReadmeExampleTests
{
[TestMethod]
[DataRow(6, 3, 2, DisplayName = "Divide(dividend: 6, divisor: 3) is 2")]
[DataRow(1, 1, 1, DisplayName = "Divide(dividend: 1, divisor: 1) is 1")]
public void DivideAreEqual(int dividend, int divisor, int expected)
{
var result = ReadmeExample.Divide(dividend, divisor);
Assert.AreEqual(expected, result);
}
[TestMethod]
[DataRow(10, 1, 42, DisplayName = "Divide(dividend: 10, divisor: 1) is not 42")]
public void DivideAreNotEqual(int dividend, int divisor, int notExpected)
{
var result = ReadmeExample.Divide(dividend, divisor);
Assert.AreNotEqual(notExpected, result);
}
[TestMethod]
[DataRow(1, 0, DisplayName = "Divide(dividend: 1, divisor: 0) throws ArgumentOutOfRangeException")]
public void DivideThrowsException_System_ArgumentOutOfRangeException(int dividend, int divisor)
{
Assert.ThrowsException<ArgumentOutOfRangeException>(() => ReadmeExample.Divide(dividend, divisor));
}
}
Restrictions
- The same Attribute rules apply here. Your parameters have to be either
- a constant value
- a
System.Type
- a single-dimensional array of the above
- The annotated method must be
static
or the declaring class must have a parameterless constructor. - The annotated method must not have more than 16 parameters.
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. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
.NETStandard 2.0
- Microsoft.NET.Test.Sdk (>= 17.5.0)
- MSTest.TestAdapter (>= 3.0.2)
- MSTest.TestFramework (>= 3.0.2)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
1.0.1 | 287 | 3/11/2023 |
1.0.0 | 213 | 3/10/2023 |
0.9.0-preview | 153 | 3/3/2023 |
Initial release