Asked by:
Why doesn't nunit recognize my tests?

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 deviationprivate 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