summaryrefslogtreecommitdiff
path: root/Library/PackageCache/com.unity.test-framework@1.1.11/UnityEngine.TestRunner/NUnitExtensions/Attributes/TestMustExpectAllLogsAttribute.cs
blob: 8f2ea0fe1a3ac1fcaa9fed4dd82dee324e3420c2 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
using System;

namespace UnityEngine.TestTools
{
    /// <summary>
    /// The presence of this attribute will cause the test runner to require that every single log is expected. By
    /// default, the runner will only automatically fail on any error logs, so this adds warnings and infos as well.
    /// It is the same as calling `LogAssert.NoUnexpectedReceived()` at the bottom of every affected test.
    ///
    /// This attribute can be applied to test assemblies (will affect every test in the assembly), fixtures (will
    /// affect every test in the fixture), or on individual test methods. It is also automatically inherited from base
    /// fixtures.
    ///
    /// The MustExpect property (on by default) lets you selectively enable or disable the higher level value. For
    /// example when migrating an assembly to this more strict checking method, you might attach
    /// `[assembly:TestMustExpectAllLogs]` to the assembly itself, but then whitelist failing fixtures and test methods
    /// with `[TestMustExpectAllLogs(MustExpect=false)]` until they can be migrated. This also means new tests in that
    /// assembly would be required to have the more strict checking. 
    /// </summary>
    [AttributeUsage(AttributeTargets.Assembly | AttributeTargets.Class | AttributeTargets.Method)]
    public class TestMustExpectAllLogsAttribute : Attribute
    {
        public TestMustExpectAllLogsAttribute(bool mustExpect = true)
            => MustExpect = mustExpect;

        public bool MustExpect { get; }
    }
}