문제

는지 궁금하네요 어떻게 몇 델파이 사용자가 여기에는 단위 테스트를 수행하는 경우,어떤?거기는 아무것도 통합 IDE 당신이 발견한 것이 잘 되었나요?하지 않을 경우,무슨 도구를 사용하여 당신과 당신은 또는 몰의 예 미니 프로젝트는 방법을 보여 주는 그것의 모든 작동합니까?

업데이트:

말 것도에 사용하는 BDS2006 년 프로데,때때로 놓으로 Delphi7,그리고 물론 다른 사람이 될 수 있을 사용하여 다른 버전입니다.

도움이 되었습니까?

해결책

DUnit 은 향후 버전에는 교환하는 데이터 단위의 유형 테스트 프레임워크를 함께 사용할 수 win32Delphi.이후 Delphi2005DUnit 통합하 certan 점 IDE 입니다.다른 DUnit 통합 도구에 대한 델파이 IDE 찾을 수 있습니다 .DUnit 제공 문서와 예제.

다른 팁

몇 가지 추가 기능에 대한 DUnit,어쩌면 이것은 가치가 있는 새로운 항목을 합니다.두 가지할 수 있는 목록에 지금

  1. FastMM4 통합:단위 테스트를 자동으로 감지하는 메모리 누수(그리고 다른 것),작품과 함께 DUnit9.3 고 새로운
  2. OpenCTF 은'컴포넌트 테스트 framework 기반으로'DUnit,그것은 성 테스트를 동적으로 모든 구성요소에서 프로젝트 형태,프레임 및 datamodules 고 테스트를 사용하여 그들을 정의한 규칙(오픈 소스)

할 수 있습을 살펴 단위 테스트 수업에서 사용할 수 있리 SynCommons 오픈 소스 단위.그것은 우리에 사용되는 오픈 소스 프레임워크에 대한 모든 회귀분 테스트합니다.그것은 아마도 가장하지 않지만,그것은에서 볼 가치가 있습니다.

http://blog.synopse.info/post/2010/07/23/Unit-Testing-light-in-Delphi

을 구현하기 위해서는 단위 테스트,당신이 선언하는 새로운 테스트 사례를 만들어 클래스는 다음과 같다:

type
  TTestNumbersAdding = class(TSynTestCase)
  published
    procedure TestIntegerAdd;
    procedure TestDoubleAdd;
  end;

procedure TTestNumbersAdding.TestDoubleAdd;
var A,B: double;
    i: integer;
begin
  for i := 1 to 1000 do
  begin
    A := Random;
    B := Random;
    CheckSame(A+B,Adding(A,B));
  end;
end;

당신은 테스트를 작성하기에 맞게,그리고 그것을 실행합니다.

에 up-to-온 1.13 버전,또한 새로운 로깅 메커니즘과 함께 스택 추적의 모든 제기한 예외와 같은 것처럼,MadExcept,사용합니다.map 파일 내용이다.

그것은 지금 사용된 단가 테스트 수업도록 실패를 만들 것입 로그 항목을 가진 소스 라인,그리고 스택 추적이:

C:\Dev\lib\SQLite3\exe\TestSQL3.exe 0.0.0.0 (2011-04-13)
Host=Laptop User=MyName CPU=2*0-15-1027 OS=2.3=5.1.2600 Wow64=0 Freq=3579545
TSynLogTest 1.13 2011-04-13 05:40:25

20110413 05402559 fail  TTestLowLevelCommon(00B31D70) Low level common: TDynArray "" stack trace 0002FE0B SynCommons.TDynArray.Init (15148) 00036736 SynCommons.Test64K (18206) 0003682F SynCommons.TTestLowLevelCommon._TDynArray (18214) 000E9C94 TestSQL3 (163) 

의 차이를 시험에 맞게 로그인하지 않고 및 테스트와 양복 로깅을 만 this:

procedure TSynTestsLogged.Failed(const msg: string; aTest: TSynTestCase);
begin
  inherited;
  with TestCase[fCurrentMethod] do
    fLogFile.Log(sllFail,'%: % "%"',
      [Ident,TestName[fCurrentMethodIndex],msg],aTest);
end;

로깅 메커니즘을 할 수 있는 많은 보다 로그인 테스트:로그인할 수 있습니다 재귀적화의 방법을 선택하려면 원하는 정보를 표시에 로그,프로필 응용 프로그램 고객 측면에서 쓰고,출판 속성 TList 또는 TCollection 콘텐츠 JSON 으로 로그 내용,그리고 중...

처음.map 파일을 읽.mab 파일을 만들고 포함됩니다 모든 심볼 정보가 필요합니다.보낼 수 있습니다.mab 파일과.exe 를 클라이언트,또는 포함하는 콘텐츠를니다.exe.다.mab 파일은 최적화된:니다.지도 927,984 바이트으로 압축 71,943.mab 파일입니다.

그래서 이 단가 될 수 있으로 인정 자연의 아이 DUnit 및 MadExcept 결혼식에서는 순수한 오픈 소스입니다.:)

추가 정보 에서 사용할 수 있는 포럼.문의 주시기 바랍니다.피드백 기능이 요청을 환영합니다!작동 델파이에서 6 까지 XE.

에서 사용할 수 있 DUnit2 http://members.optusnet.com.au/~mcnabp/

DUnit2 수정이 더 정기적으로 원래보다 dunit.그것은 또한 델파이에서 작동합 2009.

Try: http://sourceforge.net/projects/dunit2/ -이대로 움직이는 본래 저자 피터 McNab 돌은 몇 년 전입니다.여전히 몇 가지 활동에 dunit 메일링 리스트가 있습니다.

새로운 단위의 테스트 프레임워크에 대한 현대적인 Delphi 버전에 개발: https://github.com/VSoftTechnologies/DUnitX

일반적으로 내가 만드는 단위 테스트 프로젝트(파일->새->기타->단위 테스트->시험 프로젝트).그것을 담은 물건을 필요해요 그래서 그것은 좋은 충분히 그래서 지금까지.

내가 사용하는 delphi2007 그래서 내가 알지 못하는 경우에서 이용할 수 있 2006.

우리는 단위의 테스트는 모든 논리 코드를 사용하여 DUnit 고 사용하는 코드 검사 프로파일 포함 AQTime 을 확인하는 모든 경로를 통해 코드에서 실행되는 테스트입니다.

우리는 두 가지 방법 먼저 우리는 Dunit 실행되는 테스트입자-이 있는지 확인하는 코드는 그냥 변경된 여전히 작동합니다.다른 방법은 사용 CruiseControl.NET 를 구축하는 실행파일과 실행 dunit 테스트를 때마다 변경을 보장하기 위해,없는 것을 의도하지 않은 결과입니다.

의 많은 우리의 코드가 없는 테스트,그래서 자동 테스트는 케이스의 지속적인 개발을 보장하기 위해 저희 프로그램이 우리가 생각하는 것처럼 그들은 해야 합니다.

우리는 시도를 사용 DUnit Delphi5 지만,그것은 작동하지 않았습니다.특별히 구현하는 경우 COM 인터페이스,우리는 많은 의존성 설정하의 모든 테스트 infrastructure.내가 알지 못하는 경우 테스트를 지원하는 향상된 최신 버전이 있습니다.

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