locked
Why doesn't nunit recognize my tests? RRS feed

  • Question

  • User1642115476 posted

    Hello,

    I just migrated from Visual Studio 2015 to Visual Studio 2017. My unit tests are no longer being discovered. When I googled how to get my unit tests to be discovered I found some useful hits that told me to install nunit 3.7.0 through NuGet. That worked for 77 tests. But all together, I have 784 tests. Why would nunit 3.7.0 discover only 77 tests and not the full 784?

    Here's an example of test that nunit 3.7.0 discovered:


    [TestFixture]
    public class Consequence_MF_Tests : CalculationTestBase
    {
    [Test]
    public void Calculation_Consequence_MitigatedFrequency_Test0()
    {
    _consequences[0].DoCalculations();
    Assert.AreEqual(_consequences[0].MitigatedFrequency, 0.0003);
    }

    [Test]
    public void Calculation_Consequence_MitigatedFrequency_Test1()
    {
    _consequences[1].DoCalculations();
    Assert.AreEqual(_consequences[1].MitigatedFrequency, 0);
    }

    [Test]
    public void Calculation_Consequence_MitigatedFrequency_Test2()
    {
    _consequences[2].DoCalculations();
    Assert.AreEqual(_consequences[2].MitigatedFrequency, 2.0);
    }

    [Test]
    public void Calculation_Consequence_MitigatedFrequency_Test3()
    {
    _consequences[3].DoCalculations();
    Assert.AreEqual(_consequences[3].MitigatedFrequency, null);
    }

    [Test]
    public void Calculation_Consequence_MitigatedFrequency_Test4()
    {
    var errors = _consequences[4].DoCalculations();

    Assert.IsTrue(errors.Count == 1);
    Assert.IsTrue(errors[0].Description.Contains("Safeguard Credit null"));
    }

    [Test]
    public void Calculation_Consequence_MitigatedFrequency_Test5()
    {
    var errors = _consequences[5].DoCalculations();

    Assert.IsTrue(errors.Count == 1);
    Assert.IsTrue(errors[0].Description.Contains("Value cannot be null"));
    }
    }

    Here's an example of test that nunit 3.7.0 did not discover:


    [TestFixture]
    public class ETReportCardSpecs
    {
    #region test data for InitiatingEventBreakdowns

    #region private members

    private static IEnumerable<ChartDataDto> _result1;
    private static IEnumerable<ChartDataDto> _result2;

    #region H&S InitiatingEventBreakdowns

    private static InitiatingEventBreakdown _ieb_HAndS_human_5 = new InitiatingEventBreakdown()
    {
    ConsequenceCategory = ConsequenceCodes.HealthAndSafety,
    Code = CauseCodes.Human,
    Total = 5
    };

    private static InitiatingEventBreakdown _ieb_HAndS_equipment_10 = new InitiatingEventBreakdown()
    {
    ConsequenceCategory = ConsequenceCodes.HealthAndSafety,
    Code = CauseCodes.Equipment,
    Total = 10
    };

    private static InitiatingEventBreakdown _ieb_HAndS_external_15 = new InitiatingEventBreakdown()
    {
    ConsequenceCategory = ConsequenceCodes.HealthAndSafety,
    Code = CauseCodes.External,
    Total = 15
    };

    private static InitiatingEventBreakdown _ieb_HAndS_undetermined_20 = new InitiatingEventBreakdown()
    {
    ConsequenceCategory = ConsequenceCodes.HealthAndSafety,
    Code = CauseCodes.Undetermined,
    Total = 20
    };

    #endregion

    #region ENV InitiatingEventBreakdowns

    private static InitiatingEventBreakdown _ieb_ENV_human_5 = new InitiatingEventBreakdown()
    {
    ConsequenceCategory = ConsequenceCodes.Environment,
    Code = CauseCodes.Human,
    Total = 5
    };

    private static InitiatingEventBreakdown _ieb_ENV_equipment_10 = new InitiatingEventBreakdown()
    {
    ConsequenceCategory = ConsequenceCodes.Environment,
    Code = CauseCodes.Equipment,
    Total = 10
    };

    private static InitiatingEventBreakdown _ieb_ENV_external_15 = new InitiatingEventBreakdown()
    {
    ConsequenceCategory = ConsequenceCodes.Environment,
    Code = CauseCodes.External,
    Total = 15
    };

    private static InitiatingEventBreakdown _ieb_ENV_undetermined_20 = new InitiatingEventBreakdown()
    {
    ConsequenceCategory = ConsequenceCodes.Environment,
    Code = CauseCodes.Undetermined,
    Total = 20
    };

    #endregion

    #region ENC InitiatingEventBreakdowns

    private static InitiatingEventBreakdown _ieb_ECN_human_5 = new InitiatingEventBreakdown()
    {
    ConsequenceCategory = ConsequenceCodes.Economic,
    Code = CauseCodes.Human,
    Total = 5
    };

    private static InitiatingEventBreakdown _ieb_ECN_equipment_10 = new InitiatingEventBreakdown()
    {
    ConsequenceCategory = ConsequenceCodes.Economic,
    Code = CauseCodes.Equipment,
    Total = 10
    };

    private static InitiatingEventBreakdown _ieb_ECN_external_15 = new InitiatingEventBreakdown()
    {
    ConsequenceCategory = ConsequenceCodes.Economic,
    Code = CauseCodes.External,
    Total = 15
    };

    private static InitiatingEventBreakdown _ieb_ECN_undetermined_20 = new InitiatingEventBreakdown()
    {
    ConsequenceCategory = ConsequenceCodes.Economic,
    Code = CauseCodes.Undetermined,
    Total = 20
    };

    #endregion

    #endregion

    private static IEnumerable<InitiatingEventBreakdown> GetTestInitiatingEventBreakdowns(int projectId)
    {
    switch (projectId)
    {
    case 1:
    return new List<InitiatingEventBreakdown>()
    {
    _ieb_HAndS_human_5,
    _ieb_HAndS_equipment_10,
    _ieb_HAndS_external_15,
    _ieb_HAndS_undetermined_20,
    // equipment: 10/50

    _ieb_ENV_human_5,
    _ieb_ENV_human_5,
    _ieb_ENV_equipment_10,
    _ieb_ENV_external_15,
    _ieb_ENV_undetermined_20,
    // equipment: 10/55

    _ieb_ECN_human_5,
    _ieb_ECN_human_5,
    _ieb_ECN_human_5,
    _ieb_ECN_equipment_10,
    _ieb_ECN_equipment_10,
    _ieb_ECN_external_15,
    _ieb_ECN_undetermined_20,
    // equipment: 20/70
    };

    case 2:
    return new List<InitiatingEventBreakdown>()
    {
    _ieb_HAndS_human_5,
    _ieb_HAndS_external_15,
    _ieb_HAndS_undetermined_20,
    // equipment: 0/40

    _ieb_ENV_equipment_10
    // equipment: 10/10
    };
    }

    return null;
    }

    #endregion

    public class When_getting_equipment_threat_by_category : SpecsFor<PromComService>
    {
    protected override void Given()
    {
    GetMockFor<IRiskAliveContext>()
    .Setup(ctx => ctx.GetInitiatingEventBreakdown(1))
    .Returns(GetTestInitiatingEventBreakdowns(1));

    GetMockFor<IRiskAliveContext>()
    .Setup(ctx => ctx.GetInitiatingEventBreakdown(2))
    .Returns(GetTestInitiatingEventBreakdowns(2));
    }

    protected override void When()
    {
    _result1 = SUT.GetEquipmentThreatsByReceptor(1);
    _result2 = SUT.GetEquipmentThreatsByReceptor(2);
    }

    [Test]
    public void then_result1_should_have_3_elements()
    {
    _result1.Count().ShouldEqual(3);
    }

    [Test]
    public void then_consequence_categories_should_be_ordered_by_descending()
    {
    _result1.ElementAt(0).Label.ShouldEqual(ConsequenceCodes.HealthAndSafety);
    _result1.ElementAt(1).Label.ShouldEqual(ConsequenceCodes.Environment);
    _result1.ElementAt(2).Label.ShouldEqual(ConsequenceCodes.Economic);
    }

    [Test]
    public void then_HAndS_for_result1_should_be_20_percent()
    {
    _result1.Where(x => x.Label.Equals(
    ConsequenceCodes.HealthAndSafety, StringComparison.CurrentCultureIgnoreCase))
    .ElementAt(0).Value.ShouldEqual(0.2M);
    }

    [Test]
    public void then_ENV_for_result1_should_be_18_percent()
    {
    var envValue = _result1.Where(x => x.Label.Equals(
    ConsequenceCodes.Environment, StringComparison.CurrentCultureIgnoreCase))
    .ElementAt(0).Value;
    double envValueRounded = Math.Round((double)envValue.Value, 2);
    envValueRounded.ShouldEqual(0.18d);
    }

    [Test]
    public void then_ECN_for_result1_should_be_29_percent()
    {
    var ecnValue = _result1.Where(x => x.Label.Equals(
    ConsequenceCodes.Economic, StringComparison.CurrentCultureIgnoreCase))
    .ElementAt(0).Value;
    double ecnValueRounded = Math.Round((double)ecnValue.Value, 2);
    ecnValueRounded.ShouldEqual(0.29d);
    }

    [Test]
    public void then_result2_should_have_3_elements()
    {
    _result2.Count().ShouldEqual(3);
    }

    [Test]
    public void then_HAndS_for_result2_should_be_0_percent()
    {
    _result2.Where(x => x.Label.Equals(
    ConsequenceCodes.HealthAndSafety, StringComparison.CurrentCultureIgnoreCase))
    .ElementAt(0).Value.ShouldEqual(0.0M);
    }

    [Test]
    public void then_ECN_should_have_0_value_for_result2()
    {
    _result2.Where(x => x.Label.Equals(
    ConsequenceCodes.Economic, StringComparison.CurrentCultureIgnoreCase))
    .Count().ShouldEqual(1);

    _result2.Where(x => x.Label.Equals(
    ConsequenceCodes.Economic, StringComparison.CurrentCultureIgnoreCase))
    .ElementAt(0).Value.ShouldEqual(0.0M);
    }

    [Test]
    public void then_EVN_for_result2_should_be_100_percent()
    {
    _result2.Where(x => x.Label.Equals(
    ConsequenceCodes.Environment, StringComparison.CurrentCultureIgnoreCase))
    .ElementAt(0).Value.ShouldEqual(1.0M);
    }
    }


    #region test data for average equipment threats

    #region private members

    private static IEnumerable<ChartDataDtoWithStandardDeviation> _result3;
    private static IEnumerable<ChartDataDtoWithStandardDeviation> _no_ECN_result;
    private static IEnumerable<ChartDataDtoWithStandardDeviation> _no_ENV_result;
    private static IEnumerable<ChartDataDtoWithStandardDeviation> _no_HAndS_result;
    private static IEnumerable<ChartDataDtoWithStandardDeviation> _no_ECN_ENV_result;
    private static IEnumerable<ChartDataDtoWithStandardDeviation> _0_stddev_result;

    #region H&S

    private static AverageMetricByCategory _HAndS_equipment_threat_0_5 = new AverageMetricByCategory()
    {
    ConsequenceCategory = ConsequenceCodes.HealthAndSafety,
    Ratio = 0.5M,
    Average = 0.6455M,
    StandardDeviation = 0.1502M
    };

    private static AverageMetricByCategory _HAndS_equipment_threat_0_6364 = new AverageMetricByCategory()
    {
    ConsequenceCategory = ConsequenceCodes.HealthAndSafety,
    Ratio = 0.6364M,
    Average = 0.6455M,
    StandardDeviation = 0.1502M
    };

    private static AverageMetricByCategory _HAndS_equipment_threat_0_8 = new AverageMetricByCategory()
    {
    ConsequenceCategory = ConsequenceCodes.HealthAndSafety,
    Ratio = 0.8M,
    Average = 0.6455M,
    StandardDeviation = 0.1502M
    };

    #endregion

    #region ENV

    private static AverageMetricByCategory _ENV_equipment_threat_0_7 = new AverageMetricByCategory()
    {
    ConsequenceCategory = ConsequenceCodes.Environment,
    Ratio = 0.7M,
    Average = 0.6147M,
    StandardDeviation = 0.1206M
    };

    private static AverageMetricByCategory _ENV_equipment_threat_0_5294 = new AverageMetricByCategory()
    {
    ConsequenceCategory = ConsequenceCodes.Environment,
    Ratio = 0.5294M,
    Average = 0.6147M,
    StandardDeviation = 0.1206M
    };

    #endregion

    #region ENC

    private static AverageMetricByCategory _ECN_equipment_threat_0_4783 = new AverageMetricByCategory()
    {
    ConsequenceCategory = ConsequenceCodes.Economic,
    Ratio = 0.4783M,
    Average = 0.5746M,
    StandardDeviation = 0.1137M
    };

    private static AverageMetricByCategory _ECN_equipment_threat_0_7 = new AverageMetricByCategory()
    {
    ConsequenceCategory = ConsequenceCodes.Economic,
    Ratio = 0.7M,
    Average = 0.5746M,
    StandardDeviation = 0.1137M
    };

    private static AverageMetricByCategory _ECN_equipment_threat_0_5455 = new AverageMetricByCategory()
    {
    ConsequenceCategory = ConsequenceCodes.Economic,
    Ratio = 0.5455M,
    Average = 0.5746M,
    StandardDeviation = 0.1137M
    };

    #endregion

    // for testing case when only 1 project passed in for "others"
    #region 0 standard deviation

    private static AverageMetricByCategory _HAndS_return_on_investment_0_stddev = new AverageMetricByCategory()
    {
    ConsequenceCategory = ConsequenceCodes.HealthAndSafety,
    Ratio = 0.2308M,
    Average = 0.2308M,
    StandardDeviation = 0.0M
    };

    private static AverageMetricByCategory _ENV_return_on_investment_0_stddev = new AverageMetricByCategory()
    {
    ConsequenceCategory = ConsequenceCodes.Economic,
    Ratio = 0.2759M,
    Average = 0.2759M,
    StandardDeviation = 0.0M
    };

    private static AverageMetricByCategory _ECN_return_on_investment_0_stddev = new AverageMetricByCategory()
    {
    ConsequenceCategory = ConsequenceCodes.Economic,
    Ratio = 0.875M,
    Average = 0.875M,
    StandardDeviation = 0.0M
    };

    #endregion

    #endregion

    private static IEnumerable<AverageMetricByCategory> GetTestAverageEquipmentThreatsByCategory(int projectId)
    {
    switch (projectId)
    {
    case 1:
    return new List<AverageMetricByCategory>()
    {
    _HAndS_equipment_threat_0_5,
    _HAndS_equipment_threat_0_6364,
    _HAndS_equipment_threat_0_8,

    _ENV_equipment_threat_0_7,
    _ENV_equipment_threat_0_5294,

    _ECN_equipment_threat_0_4783,
    _ECN_equipment_threat_0_7,
    _ECN_equipment_threat_0_5455
    };

    case 2:
    return new List<AverageMetricByCategory>()
    {
    _HAndS_equipment_threat_0_5,
    _HAndS_equipment_threat_0_6364,
    _HAndS_equipment_threat_0_8,

    _ENV_equipment_threat_0_7,
    _ENV_equipment_threat_0_5294
    };

    case 3:
    return new List<AverageMetricByCategory>()
    {
    _HAndS_equipment_threat_0_5,
    _HAndS_equipment_threat_0_6364,
    _HAndS_equipment_threat_0_8,

    _ECN_equipment_threat_0_4783,
    _ECN_equipment_threat_0_7,
    _ECN_equipment_threat_0_5455
    };
    case 4:
    return new List<AverageMetricByCategory>()
    {
    _ENV_equipment_threat_0_7,
    _ENV_equipment_threat_0_5294,

    _ECN_equipment_threat_0_4783,
    _ECN_equipment_threat_0_7,
    _ECN_equipment_threat_0_5455
    };

    case 5:
    return new List<AverageMetricByCategory>()
    {
    _HAndS_equipment_threat_0_5,
    _HAndS_equipment_threat_0_6364,
    _HAndS_equipment_threat_0_8
    };

    case 6:
    return new List<AverageMetricByCategory>()
    {
    _HAndS_return_on_investment_0_stddev,
    _ENV_return_on_investment_0_stddev,
    _ECN_return_on_investment_0_stddev
    };
    }

    return null;
    }

    #endregion

    public class When_getting_average_equipment_threat_by_receptor : SpecsFor<PromComService>
    {
    protected override void Given()
    {
    GetMockFor<IRiskAliveContext>()
    .Setup(ctx => ctx.GetAvgEquipmentThreatsByCategory("26,27,28")) // <-- Hard coded project IDs
    .Returns(GetTestAverageEquipmentThreatsByCategory(1));

    GetMockFor<IRiskAliveContext>()
    .Setup(ctx => ctx.GetAvgEquipmentThreatsByCategory("NoECNTest")) // <-- Temporary value until we stop hardcoding project ID list.
    .Returns(GetTestAverageEquipmentThreatsByCategory(2));

    GetMockFor<IRiskAliveContext>()
    .Setup(ctx => ctx.GetAvgEquipmentThreatsByCategory("NoENVTest")) // <-- Temporary value until we stop hardcoding project ID list.
    .Returns(GetTestAverageEquipmentThreatsByCategory(3));

    GetMockFor<IRiskAliveContext>()
    .Setup(ctx => ctx.GetAvgEquipmentThreatsByCategory("NoHAndSTest")) // <-- Temporary value until we stop hardcoding project ID list.
    .Returns(GetTestAverageEquipmentThreatsByCategory(4));

    GetMockFor<IRiskAliveContext>()
    .Setup(ctx => ctx.GetAvgEquipmentThreatsByCategory("NoECN_ENVTest")) // <-- Temporary value until we stop hardcoding project ID list.
    .Returns(GetTestAverageEquipmentThreatsByCategory(5));

    GetMockFor<IRiskAliveContext>()
    .Setup(ctx => ctx.GetAvgEquipmentThreatsByCategory("0")) // <-- Temporary value until we stop hardcoding project ID list.
    .Returns(GetTestAverageEquipmentThreatsByCategory(6));
    }

    protected override void When()
    {
    _result3 = SUT.GetAverageMetricByCategory(ReportCardIcon.ET);

    SUT.ChangeProjectIdListForUnitTests("NoECNTest");

    _no_ECN_result = SUT.GetAverageMetricByCategory(ReportCardIcon.ET);

    SUT.ChangeProjectIdListForUnitTests("NoENVTest");

    _no_ENV_result = SUT.GetAverageMetricByCategory(ReportCardIcon.ET);

    SUT.ChangeProjectIdListForUnitTests("NoHAndSTest");

    _no_HAndS_result = SUT.GetAverageMetricByCategory(ReportCardIcon.ET);

    SUT.ChangeProjectIdListForUnitTests("NoECN_ENVTest");

    _no_ECN_ENV_result = SUT.GetAverageMetricByCategory(ReportCardIcon.ET);

    SUT.ChangeProjectIdListForUnitTests("0");

    _0_stddev_result = SUT.GetAverageMetricByCategory(ReportCardIcon.ET);

    SUT.RevertProjectIdListForUnitTests();
    }

    [Test]
    public void then_result3_should_have_3_elements()
    {
    _result3.Count().ShouldEqual(3);
    }

    [Test]
    public void then_consequence_categories_should_be_ordered_by_descending()
    {
    _result3.ElementAt(0).Label.ShouldEqual(ConsequenceCodes.HealthAndSafety);
    _result3.ElementAt(1).Label.ShouldEqual(ConsequenceCodes.Environment);
    _result3.ElementAt(2).Label.ShouldEqual(ConsequenceCodes.Economic);
    }

    [Test]
    public void then_avg_HAndS_should_be_0_6455()
    {
    _result3.Where(x => x.Label.Equals(
    ConsequenceCodes.HealthAndSafety, StringComparison.CurrentCultureIgnoreCase))
    .ElementAt(0).Value.ShouldEqual(0.6455M);
    }

    [Test]
    public void then_avg_ENV_should_be_0_6147()
    {
    _result3.Where(x => x.Label.Equals(
    ConsequenceCodes.Environment, StringComparison.CurrentCultureIgnoreCase))
    .ElementAt(0).Value.ShouldEqual(0.6147M);
    }

    [Test]
    public void then_avg_ECN_should_be_0_5746()
    {
    _result3.Where(x => x.Label.Equals(
    ConsequenceCodes.Economic, StringComparison.CurrentCultureIgnoreCase))
    .ElementAt(0).Value.ShouldEqual(0.5746M);
    }

    [Test]
    public void then_StdDev_HAndS_should_be_0_1502()
    {
    _result3.Where(x => x.Label.Equals(
    ConsequenceCodes.HealthAndSafety, StringComparison.CurrentCultureIgnoreCase))
    .ElementAt(0).StandardDeviation.ShouldEqual(0.1502M);
    }

    [Test]
    public void then_StdDev_ENV_should_be_0_1206()
    {
    _result3.Where(x => x.Label.Equals(
    ConsequenceCodes.Environment, StringComparison.CurrentCultureIgnoreCase))
    .ElementAt(0).StandardDeviation.ShouldEqual(0.1206M);
    }

    [Test]
    public void then_StdDev_ECN_should_be_0_1137()
    {
    _result3.Where(x => x.Label.Equals(
    ConsequenceCodes.Economic, StringComparison.CurrentCultureIgnoreCase))
    .ElementAt(0).StandardDeviation.ShouldEqual(0.1137M);
    }

    [Test]
    public void then_ECN_should_exist_with_0_values_for_no_ECN_result()
    {
    _no_ECN_result.Where(x => x.Label.Equals(
    ConsequenceCodes.Economic, StringComparison.CurrentCultureIgnoreCase))
    .ElementAt(0).Value.ShouldEqual(0.0M);

    _no_ECN_result.Where(x => x.Label.Equals(
    ConsequenceCodes.Economic, StringComparison.CurrentCultureIgnoreCase))
    .ElementAt(0).StandardDeviation.ShouldEqual(0.0M);
    }

    [Test]
    public void then_ENV_should_exist_with_0_values_for_no_ENV_result()
    {
    _no_ENV_result.Where(x => x.Label.Equals(
    ConsequenceCodes.Environment, StringComparison.CurrentCultureIgnoreCase))
    .ElementAt(0).Value.ShouldEqual(0.0M);

    _no_ENV_result.Where(x => x.Label.Equals(
    ConsequenceCodes.Environment, StringComparison.CurrentCultureIgnoreCase))
    .ElementAt(0).StandardDeviation.ShouldEqual(0.0M);
    }

    [Test]
    public void then_HAndS_should_exist_with_0_values_for_no_HAndS_result()
    {
    _no_HAndS_result.Where(x => x.Label.Equals(
    ConsequenceCodes.HealthAndSafety, StringComparison.CurrentCultureIgnoreCase))
    .ElementAt(0).Value.ShouldEqual(0.0M);

    _no_HAndS_result.Where(x => x.Label.Equals(
    ConsequenceCodes.HealthAndSafety, StringComparison.CurrentCultureIgnoreCase))
    .ElementAt(0).StandardDeviation.ShouldEqual(0.0M);
    }

    [Test]
    public void then_ECN_and_ENV_should_exist_with_0_values_for_no_ECN_ENV_result()
    {
    _no_ECN_ENV_result.Where(x => x.Label.Equals(
    ConsequenceCodes.Economic, StringComparison.CurrentCultureIgnoreCase))
    .ElementAt(0).Value.ShouldEqual(0.0M);

    _no_ECN_ENV_result.Where(x => x.Label.Equals(
    ConsequenceCodes.Economic, StringComparison.CurrentCultureIgnoreCase))
    .ElementAt(0).StandardDeviation.ShouldEqual(0.0M);

    _no_ECN_ENV_result.Where(x => x.Label.Equals(
    ConsequenceCodes.Environment, StringComparison.CurrentCultureIgnoreCase))
    .ElementAt(0).Value.ShouldEqual(0.0M);

    _no_ECN_ENV_result.Where(x => x.Label.Equals(
    ConsequenceCodes.Environment, StringComparison.CurrentCultureIgnoreCase))
    .ElementAt(0).StandardDeviation.ShouldEqual(0.0M);
    }

    [Test]
    public void then_stddev_should_ebe_0_for_0_stddev_result()
    {
    _0_stddev_result.Where(x => x.Label.Equals(
    ConsequenceCodes.HealthAndSafety, StringComparison.CurrentCultureIgnoreCase))
    .ElementAt(0).StandardDeviation.ShouldEqual(0.0M);

    _0_stddev_result.Where(x => x.Label.Equals(
    ConsequenceCodes.Environment, StringComparison.CurrentCultureIgnoreCase))
    .ElementAt(0).StandardDeviation.ShouldEqual(0.0M);

    _0_stddev_result.Where(x => x.Label.Equals(
    ConsequenceCodes.Economic, StringComparison.CurrentCultureIgnoreCase))
    .ElementAt(0).StandardDeviation.ShouldEqual(0.0M);
    }
    }
    }

    The only difference I see is that the latter involves the when/given/then structure.

    Thursday, June 1, 2017 8:32 PM

All replies

  • User1967761114 posted

    Hi gib9898_00,

    According to your description, when you want a method to be the test method, you could add [NUnit.Framework.TestAttribute] on the method, and test method must be public.

    See the following code:

    [TestFixture]
    public class Test1
    {
        [Test]
        public void TestMethod1()
        {
            //can discover
        }
    
        [Test]
        private void TestMethod2()
        {
            //can't discover
        }
    
        [Test]
        public static void TestMethod3()
        {
            //can discover
        }
    
        [Test]
        private static void TestMethod4()
        {
            //can't discover
        }
    
        public void TestMethod5()
        {
            //can't discover
        }
    
        private void TestMethod6()
        {
            //can't discover
        }
    
        public static void TestMethod7()
        {
            //can't discover
        }
    
        private static void TestMethod8()
        {
            //can't discover
        }
    }
    


    If you have any other questions, please feel free to contact me any time.

    Best Regards

    Even

    Friday, June 2, 2017 2:12 AM
  • User1642115476 posted

    Thanks Even, but changing our unit tests is not feasible.

    There must be a way to get Visual Studio 2017 to recognize the unit tests.

    All unit tests were recognized in Visual Studio 2015. All I did was open the same project in Visual Studio 2017. Why will Visual Studio 2017 not recognize the same unit tests that Visual Studio 2015 recognizes?

    Friday, June 2, 2017 3:03 AM
  • User1967761114 posted

    Hi gib9898_00,<o:p></o:p>

    As far as I know, NUnit has never changed the discovery rules for the test methods, that’s has no relation with the version of visual studio.<o:p></o:p>

    That's really so strange that the private method or without the [Test] attribute can discovery by NUnit in VS2015?<o:p></o:p>

    Can you provide me the version of the NUnit and the Nunit Tool you used to discovery test methods ,I will try it.<o:p></o:p>

     

    Best Regards<o:p></o:p>

    Even<o:p></o:p>

    Friday, June 2, 2017 8:15 AM
  • User1642115476 posted

    The version of NUnit is 3.7.0. Not sure what you mean by "nunit tool".

    Monday, June 5, 2017 2:54 PM
  • User1967761114 posted

    Hi gib9898_00,

    I had been tried on NUnit3.7.0, that also couldn’t find the private method and the method without [Test] attribute, could you provide some evidences for that they had been discovered by NUint? such as screen shot….

    The NUnit tool what I means is NUnit GUI OR NUnit VS Adapter .

    If you have any other questions, please feel free to contact me any time.

    Best Regards

    Even

     

    Tuesday, June 6, 2017 1:47 AM