Simple project to approve the public API of a project (useful for semantic versioning)
Clone or download
Latest commit 703b483 Sep 23, 2018
Permalink
Failed to load latest commit information.
src fix typos Sep 23, 2018
.gitattributes
.gitignore Switching to new csproj Aug 17, 2017
GitVersion.yml Bump major Jul 24, 2018
LICENSE Updated NuSpec and added License file Jan 27, 2015
README.md
appveyor.yml Update AppVeyor script Nov 17, 2017
build.ps1

README.md

Build status

ApiApprover

Api Approver is a simple NuGet package built on top of ApprovalTests.Net which approves the public API of an assembly.

Whenever the public API changes the Api Approver test will fail. Running the test manually will pop up a diff tool allowing you to see the changes. If the changes are fine (i.e an added overload) then the changes can simply be approved and test will pass again.

ApiApprover

There are times though that changes to the public API is accidental. Api Approver simply adds a step that all public API changes have to be reviewed by a developer and accepted, saving accidental breaking changes being shipped.

PublicApiGenerator

I am moving away from ApiApprover and just publishing PublicAPiGenerator, this has no dependencies and you can choose your own approval library.

Simply install PublicApiGenerator

How do I use it

Install-package ApiApprover

or

Install-package Shouldly

[Fact]
public void my_assembly_has_no_public_api_changes()
{
    var publicApi = PublicApiApprover.GeneratePublicApi(typeof(Application).Assembly);

    // Use an approval framework like

    //Shouldly
    publicApi.ShouldMatchApproved();

    //ApprovalTests
    Approvals.Verify(publicApi);
}