NUnit GetResultState создает исключение NullReferenceException
Я получаю внутреннее NullReferenceException
из NUnit 2.6.4 во время работы прибора модульного тестирования:
SetUp : System.NullReferenceException : Object reference not set to an instance of an object
at NUnit.Core.NUnitFramework.GetResultState (System.Exception ex) <0x40e3da10 + 0x00068> in <filename unknown>:0
at NUnit.Core.TestMethod.RecordException (System.Exception exception, NUnit.Core.TestResult testResult, FailureSite failureSite) <0x40e3d920 + 0x00093> in <filename unknown>:0
at NUnit.Core.TestMethod.RunTestCase (NUnit.Core.TestResult testResult) <0x40e34a30 + 0x00168> in <filename unknown>:0
at NUnit.Core.TestMethod.RunTest () <0x40e30060 + 0x0013f> in <filename unknown>:0
Я пробовал как с JetBeans Rider, так и с MonoDevelop. Я считаю, что это как-то связано с моей реализацией IEquatable, потому что проблема исчезает, когда я удаляю реализацию. Моя реализация включает в себя класс, производный абстрактный класс, который реализует IEquatable<Derived>
со следующими функциями определены / перезаписаны (а также операторы == и!=):
public override bool Equals(object o){
var a = o as Derived;
return a != null && Equals(a);
}
public new static bool Equals(object a, object b){
if(a == null || b == null) return false;
if(a.GetType() != typeof(Derived) || b.GetType() != typeof(Derived))
return false;
return ((Derived) a).Equals((Derived) b);
}
public bool Equals(Derived a){
return a != null && a.Id == Id;
}
public override int GetHashCode(){
// ReSharper disable once NonReadonlyMemberInGetHashCode
return _id.GetHashCode();
}
Это ошибка NUnit или что-то не так с моей реализацией?