단위 테스트를 실행하기 위해 Visual Studio (때로는 resharper)를 사용하고 있습니다.
NUnit에 대해 들었지만 그것에 대해 많이 알지 못합니다 ...
내가 신경 써야하나요? 비주얼 스튜디오보다 더 나은 것을 제공 할 수 있습니까?
NUnit을 사용해야하며 그 이유는 무엇입니까?
단위 테스트를 실행하기 위해 Visual Studio (때로는 resharper)를 사용하고 있습니다.
NUnit에 대해 들었지만 그것에 대해 많이 알지 못합니다 ...
내가 신경 써야하나요? 비주얼 스튜디오보다 더 나은 것을 제공 할 수 있습니까?
NUnit을 사용해야하며 그 이유는 무엇입니까?
답변:
NUnit은 MS-Test에 비해 장점이 거의 없습니다.
Assert.AreEqual(expected, actual)
vsAssert.That(actual, Is.EqualTo(expected))
[TestCase]
! NUnit은 매개 변수화 된 테스트를 허용합니다.현재의 관점에서 (평균 10 명의 개발자와 8 개월 간의 개발 후) 다음과 같은 이유로 MSTest 사용을 권장 하지 않습니다.
즉, 8 개월 전에 다시 결정해야한다면 아마도 NUnit을 택할 것입니다. 통합 된 테스트 결과 보고서가 없을 수도 있지만 개발자는 더 원활한 테스트 경험을 가질 수 있습니다.
다음은 MS Test에 대한 나의 경험입니다.
추가 : 우리는 지금 더 많은 테스트를 가지고 있습니다. 얼마나 많은지 말할 수 없습니다. OutOfMemoryExceptions 및 기타 불안정성 문제로 인해 Visual Studio에서 더 이상 모두 실행할 수 없습니다. 스크립트에서 테스트를 실행합니다. Visual Studio에서 테스트 결과를보기는 쉽지만 솔루션이 열리면 VS가 충돌합니다 (매번). 따라서 텍스트 검색을 사용하여 실패한 테스트를 검색해야합니다. 더 이상 통합 도구의 이점이 없습니다.
또 다른 업데이트 : 현재 VS 2013을 사용하고 있습니다. 많은 것들이 바뀌 었습니다. 그들은 우리가 시작한 이래 세 번째로 MS 테스트 실행기를 다시 작성했습니다. 이로 인해 많은 주요 변경 사항이 발생했지만 새 버전은 더 나은 결과를 얻지 못했습니다. MS Test의 멋진 기능이 더 이상 지원되지 않기 때문에 사용하지 않아서 다행입니다. 정말 부끄러운 일입니다. 우리는 여전히 스크립트를 사용하여 모든 단위 테스트를 빌드하고 실행하고 있습니다. Visual Studio는 테스트 실행을 시작하는 데 몇 분이 걸렸습니다 (컴파일 후 첫 번째 테스트가 시작될 때까지의 시간 측정). 그들은 아마도 업데이트로 그것을 고칠 것이고 이것은 우리 프로젝트의 특정 문제 일 수 있습니다. 그러나 Resharper는 동일한 테스트를 실행할 때 훨씬 더 빠릅니다.
결론 : 적어도 Resharper와 함께 사용하면 MS Test가 유용합니다. 그리고 그들이 마침내 테스트 러너가 어떻게 작성되어야하는지 알아 내고 다음에 Visual Studio를 업데이트 할 때 이런 종류의 주요 변경 사항을 수행하지 않기를 바랍니다.
NUnit를 사용할 수 있습니다 함께 비주얼 스튜디오와. 별도의 프로그램이 아닌 프레임 워크입니다. 그래서 당신은 그것이 당신에게 맞는지 살펴볼 수 있습니다 :).
"플러그인을 설치하면 도구 메뉴 아래에 새로운 하위 메뉴가 있습니다."
가져 오기에 대한 자세한 내용 은 http://nunitit.codeplex.com/ 을 참조하십시오 .
또한 SO 검색을 사용하여 많은 것을 찾을 수 있습니다. 이 주제 는 예를 들어 MS 표준 테스트에 비해 NUnit의 장점을 나열합니다.
NUnit에 비해 MS-Test의 가장 큰 장점은 MS-Test가 Reflection을 사용하여 모의 개체를 생성 할 수 있다는 것입니다. 나는 그것이 매우 유용하다는 것을 알았다
NUnit은 VS의 Standard 에디션에서 작동합니다.
다른 사람은 잘 모르겠지만 NUnit은 단위 테스트를 실행할 수있는 멋진 GUI와 콘솔을 제공하며 NUnit 테스트 실행 결과에 대한 보고서를 생성하여 테스트가 실패했는지 또는 통과했는지, 그리고 몇시에 수행했는지에 대한 세부 정보를 제공 할 수 있습니다. 단위 테스트를
NUnit은 resharper에서도 지원하는 단위 테스트 프레임 워크입니다. Microsoft의 단위 테스트 프레임 워크를 사용하고 있다고 생각하므로 NUnit은 Microsoft 제품의 대안 일뿐입니다.)
NUnit 홈페이지 링크 : http://nunit.org
Visual Studio를 사용하는 경우 단위 테스트를 위해 NUnit을 사용해야하고, java (Netbeans)를 실행하는 경우 단위 테스트를 위해 JUnit을 사용해야합니다.
다음은 간단한 계산기 단위 테스트의 예입니다.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using SimpleCalculator;
using NUnit.Framework;
namespace CalculatorTest
{
[TestFixture]
public class Class1
{
public Calculator _calculator;
[TestFixtureSetUp]
public void Initialize()
{
_calculator = new Calculator();
}
[Test]
public void DivideTest()
{
int a = 10;
int b = 2;
int expectedValue = a / b;
int actualvalue = _calculator.Divide(a, b);
Assert.AreEqual(expectedValue, actualvalue,"Failure");
}
}
}