JUnit에 익숙하지만, NUnit에 익숙하지 않습니다. 내 (단순) 테스트가 실패하고 그것을 이해할 수 없습니다.NUnit System.NullReferenceException이 감지되지 않음
[INFO] | NUnit-Console version 2.6.3.13283
[INFO] | Copyright (C) 2002-2012 Charlie Poole.
[INFO] | Copyright (C) 2002-2004 James W. Newkirk, Michael C. Two, Alexei A. Vorontsov.
[INFO] | Copyright (C) 2000-2002 Philip Craig.
[INFO] | All Rights Reserved.
[INFO] |
[INFO] | Runtime Environment -
[INFO] | OS Version: Microsoft Windows NT 6.2.9200.0
[INFO] | CLR Version: 2.0.50727.8000 (Net 3.5)
[INFO] |
[INFO] | ProcessModel: Default DomainUsage: Single
[INFO] | Execution Runtime: net-3.5
[INFO] |
[INFO] | Tests run: 1, Errors: 1, Failures: 0, Inconclusive: 0, Time: 0.130717193180073 seconds
[INFO] | Not run: 0, Invalid: 0, Ignored: 0, Skipped: 0
[INFO] |
[INFO] | Errors and Failures:
[INFO] | 1) Test Error : net.kolotyluk.windows.elevate.ElevateTest.NoArguments
[INFO] | System.NullReferenceException : Object reference not set to an instance of an object.
[INFO] | at net.kolotyluk.windows.elevate.Elevate.Main(String[] commandArguments)
[INFO] | at net.kolotyluk.windows.elevate.ElevateTest.NoArguments()
[INFO] |
[INFO] |
[INFO] +--[ FAILED, result = 1, error output = false]
내 실제 테스트 코드
[Test]
public void NoArguments()
{
String [] arguments = new String[0];
Assert.AreNotEqual(null, arguments);
var result = Elevate.Main(arguments);
Assert.Equals(0, result);
}
하고 테스트중인 내 코드
public static int Main(string[] commandArguments)
{
if (commandArguments == null) return 0;
시작 내가, 내 인생에 들어있는 NullReferenceException이 어디에서 오는 알아낼 수 없습니다 .
심지어 더 미친 것은이 테스트가 어느 시점에서 잘 진행되고 있다는 것이므로 지금 무슨 일이 일어나고 있는지 전혀 알지 못합니다. 관련성이있는 경우 NPanday를 사용하여 Maven을 사용하여 테스트를 실행하고 있습니다. 여기
Main 메서드 내부에서 오류가 더 멀리 있고 commandArguments 매개 변수와 아무 관계가 없습니까? 가장 좋은 방법은 디버그를 작성하고 디버거를 nunit 콘솔 앱에 연결하여 단계별 디버그가 될 수 있습니다. –
commandArguments는 표시 한 테스트에서 null로 전달되지 않으며 표시되는 Main 섹션에서 0이 반환되지 않으므로 다른 정보가 잘못 표시됩니다. 디버거를 Break on Exception으로 설정하면 더 나은 정보를 얻을 수 있습니다. –