문제

소프트웨어 조각에 대한 많은 테스트가 작성되었지만 (좋은 것) C#의 독립형 테스트로 본질적으로 구축되었습니다. 이것은 충분히 잘 작동하지만 몇 가지 단점으로 어려움을 겪고 있으며, 그 중 가장 적은 것은 표준 테스트 프레임 워크를 사용하지 않고 테스트를 실행하는 사람이 실행되지 않아야 할 테스트에 전화를 댓글을 달아야한다는 것입니다. (전체 테스트 '스위트'를 실행하는 것이 바람직하지 않은 경우). 자동 테스트 프로세스에 통합하고 싶습니다.

VS 2008의 시험판에는 내가 원하는대로 할 수있는 '일반 테스트'개념이 있지만 현재 해당 버전에 돈을 쓸 수있는 위치에 있지는 않습니다. 최근에 VS 2008 Pro 버전을 사용하기 시작했습니다.

이 테스트 방법은 친숙한 패턴을 따릅니다.

  • 테스트를위한 설정을 수행하십시오.
  • 테스트를 실행하십시오.
  • 다음 테스트를 위해 재설정하십시오.

그들 각각은 bool (Pass/Fail)과 현악기를 실패한 이유로 반환합니다.

밝은면에서는 적어도 테스트 방법이 일관성이 있습니다.

나는 오늘 밤이 모든 테스트 코드를 테스트 프레임 워크로 마이그레이션하기 위해 내일 아침에 취할 수있는 접근 방식을 고려하고 있으며, 솔직히 말해서, 8-9k 이상의 테스트 코드 라인을 손으로 포기한다는 아이디어에 대해 흥분하는 것은 아닙니다. 변환을 수행하십시오.

그러한 전환을 수행 한 경험이 있습니까? 팁이 있습니까? 글로벌 검색/교체 및 손으로 변경하는 모든 작업을 수행하여 슬로깅을 할 수 있다고 생각합니다.

이견있는 사람?

도움이 되었습니까?

해결책

Nunit (필요한 경우)을 사용하는 경우 각각의 현재 테스트 방법에 대한 새로운 테스트 방법을 만들어야합니다. Nunit은 반사를 사용하여 테스트 클래스를 [Test] 속성은 UI에 표시되는 테스트 목록을 작성하고 테스트 클래스는 Nunit을 사용합니다. Assert 그들이 통과했는지 또는 실패했는지 여부를 나타내는 방법.

당신의 테스트 방법이 당신이 말하는 것처럼 일관된 경우, 모든 수녀 방법은 다음과 같이 보일 것 같습니다.

[Test]
public void MyTest()
{
   string msg;
   bool result = OldTestClass.MyTest(out msg);
   if (!result)
   {
      Console.WriteLine(msg);
   }
   Assert.AreEqual(result, true);

}

일단 작동하면 다음 단계는 반사를 사용하여 기존 테스트 클래스에서 모든 테스트 메소드 이름을 가져오고 원래 테스트 방법 각각에 대한 수녀 메소드가있는 .CS 파일을 생성하는 프로그램을 작성하는 것입니다.

성가 시지만 아마도 고통 스럽지는 않습니다. 그리고 한 번만해야 할 것입니다.

다른 팁

당신은 "예방의 온스는 1 파운드의 가치가 있습니다"라는 관용구를 통해 살려고합니다. 특히 프로그래밍에서 사실입니다.

당신은 Nunit에 대해 언급하지 않습니다 (2008 년 Microsoft가 구입했다고 생각하지만 저를 붙잡지 마십시오). 처음에 Nunit을 사용하지 않았던 가중한 이유가 있습니까?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top