Search Results for

    Show / Hide Table of Contents

    NUnit1025

    The ValueSource argument does not specify an existing member

    Topic Value
    Id NUnit1025
    Severity Error
    Enabled True
    Category Structure
    Code ValueSourceUsageAnalyzer

    Description

    The ValueSource argument does not specify an existing member. This will lead to an error at run-time.

    Motivation

    To prevent tests that will fail at runtime due to improper construction.

    How to fix violations

    Example Violation

    [Test]
    public void NUnit1011SampleTest([ValueSource("MyIncorrectTestSource")] string stringValue)
    {
        Assert.That(stringValue.Length, Is.EqualTo(3));
    }
    
    public static object[] MyTestSource()
    {
        return new object[] {"One", "Two"};
    }
    

    Explanation

    In the example above, the test case source is named MyIncorrectTestCaseSource, but the test case source is actually named MyTestSource. Because the names don't match, this will be an error.

    Fix

    Rename the TestCaseSource to match:

    [Test]
    public void NUnit1011SampleTest([ValueSource("MyTestSource")] string stringValue)
    {
        Assert.That(stringValue.Length, Is.EqualTo(3));
    }
    
    public static object[] MyTestSource()
    {
        return new object[] {"One", "Two"};
    }
    

    Or even better, use nameof so that the compiler may assist with mismatched names in the future:

    [Test]
    public void NUnit1011SampleTest([ValueSource(nameof(MyTestSource))] string stringValue)
    {
        Assert.That(stringValue.Length, Is.EqualTo(3));
    }
    
    public static object[] MyTestSource()
    {
        return new object[] {"One", "Two"};
    }
    

    Configure severity

    Via ruleset file

    Configure the severity per project, for more info see MSDN.

    Via .editorconfig file

    # NUnit1025: The ValueSource argument does not specify an existing member
    dotnet_diagnostic.NUnit1025.severity = chosenSeverity
    

    where chosenSeverity can be one of none, silent, suggestion, warning, or error.

    Via #pragma directive

    #pragma warning disable NUnit1025 // The ValueSource argument does not specify an existing member
    Code violating the rule here
    #pragma warning restore NUnit1025 // The ValueSource argument does not specify an existing member
    

    Or put this at the top of the file to disable all instances.

    #pragma warning disable NUnit1025 // The ValueSource argument does not specify an existing member
    

    Via attribute [SuppressMessage]

    [System.Diagnostics.CodeAnalysis.SuppressMessage("Structure",
        "NUnit1025:The ValueSource argument does not specify an existing member",
        Justification = "Reason...")]
    
    • Edit this page
    In this article
    Back to top Generated by DocFX | Copyright (c) 2018- The NUnit Project - Licensed under CC BY-NC-SA 4.0