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 или что-то не так с моей реализацией?

0 ответов

Другие вопросы по тегам