VSTeam.VSharp
0.0.8
dotnet add package VSTeam.VSharp --version 0.0.8
NuGet\Install-Package VSTeam.VSharp -Version 0.0.8
<PackageReference Include="VSTeam.VSharp" Version="0.0.8" />
paket add VSTeam.VSharp --version 0.0.8
#r "nuget: VSTeam.VSharp, 0.0.8"
// Install VSTeam.VSharp as a Cake Addin #addin nuget:?package=VSTeam.VSharp&version=0.0.8 // Install VSTeam.VSharp as a Cake Tool #tool nuget:?package=VSTeam.VSharp&version=0.0.8
V# Symbolic Execution Engine
V# is a symbolic execution engine for .NET binaries, performing completely automated and unassisted test generation for .NET assemblies. It is cross-platform and supports .NET, .NET Core and .NET Framework assemblies.
Requirements
.NET 6 or greater
Testing a small function
Create an empty NUnit test project DemoProject
and insert the following code:
using System;
using NUnit.Framework;
namespace DemoProject
{
public static class DemoClass
{
public static int Abs(int x)
{
int y = x;
if (x < 0)
y = -x;
if (y < 0)
throw new Exception("What?");
return y;
}
}
public class Tests
{
[Test]
public void Test1()
{
var success = VSharp.TestGenerator.CoverAndRun(typeof(DemoClass));
Assert.IsTrue(success);
}
}
}
The test will generate two unit tests for Abs
function and run all the tests. You will sequentially see one value that gets into the then
branch first of the first condition and INT_MIN
value which takes the Abs
function throwing the exception.
Run the test coverage measurement tool to be sure the exhaustiveness of the generated test coverage. The generated tests can be found in DemoProject
working directory, in VSharp.tests.0
subfolder.
Current state
The project is currently in active development stage. If you encounter the problem, consider submitting the issue.
License
The project is licensed under the Apache License Version 2.0
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0 is compatible. 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. |
-
net6.0
- CsvHelper (>= 30.0.1)
- FSharp.Core (>= 7.0.200)
- FSharpx.Collections (>= 2.0.0)
- JetBrains.Roslyn.References.Repack (>= 42.42.20220228.125130)
- Microsoft.Extensions.DependencyInjection (>= 2.0.0)
- Microsoft.Extensions.DependencyModel (>= 3.0.0)
- Microsoft.Z3.x64 (>= 4.8.6)
- System.CommandLine (>= 2.0.0-beta1.21308.1)
- vsteam.Z3.M1 (>= 4.8.11-alpha.2)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
- Improved test rendering engine
- A lot of bugfixes increasing test coverage