Home

Awesome

Spectre.Verify.Extensions

Continuous Integration NuGet Status

Add an attribute driven file naming convention to Verify.

NuGet package

https://nuget.org/packages/Spectre.Verify.Extensions/

Usage

At startup pass Expectations.Initialize to VerifierSettings.DerivePathInfo:

<!-- snippet: Initialize -->

<a id='snippet-Initialize'></a>

public static class VerifyConfig
{
    [ModuleInitializer]
    public static void Init()
    {
        Verifier.DerivePathInfo(Expectations.Initialize);
    }
}

<sup><a href='/src/Spectre.Verify.Extensions.Tests/ExpectationTests.cs#L40-L49' title='Snippet source file'>snippet source</a> | <a href='#snippet-Initialize' title='Start of snippet'>anchor</a></sup>

<!-- endSnippet -->

Then the following test

<!-- snippet: Usage -->

<a id='snippet-Usage'></a>

[ExpectationPath("Foo")]
public static class ExpectationTests
{
    public static class MyOtherTestClass
    {
        [ExpectationPath("Bar/Qux")]
        public class MyOtherOtherTestClass
        {
            [Fact]
            [Expectation("Waldo")]
            public async Task Test1()
            {
                await Verifier.Verify("w00t");
            }
        }
    }

    [ExpectationPath("Baz")]
    public class YetAnotherTestClass
    {
        [Fact]
        [Expectation("Corgi", "Lol")]
        public async Task Test1()
        {
            await Verifier.Verify("lol");
        }
    }
}

<sup><a href='/src/Spectre.Verify.Extensions.Tests/ExpectationTests.cs#L9-L38' title='Snippet source file'>snippet source</a> | <a href='#snippet-Usage' title='Start of snippet'>anchor</a></sup>

<!-- endSnippet -->

Will produce the following directory structure:

ProjectDir
  - Expectations
    - Foo
      - Bar
        - Qux
          - Waldo.Output.verified.txt
      - Baz
        - Corgi.Lol.verified.txt