2010-08-20 7 views
2

Flash Builder 4를 IDE로 사용하여 ActionScript3을 사용하여 응용 프로그램을 빌드하고 있습니다.명령 줄에서 FlexUnit 빌드 및 실행

IDE는 "FlexUnit"이라는 단위 테스트 프레임 워크를 지원합니다.

IDE에서 테스트를 빌드하고 실행할 수 있지만 아무런 문제가 없습니다.

많은 고통과 고통을 겪은 후에 나는 단위 테스트를 명령 행에서 swf로 빌드하는 방법을 알아 냈습니다. swf에서 브라우저 또는 플래시 플레이어를 가리키고 테스트가 실행됩니다.

자동 빌드 시스템의 경우에는 좋지 않습니다. 테스트를 빌드하고 실행하고 결과를 수집/분석하여 어떤 테스트가 실패했는지 알려야합니다.

일부 해커를 이미징 할 수 있습니다. FlexUnit 기본 라이브러리를 해킹하여 출력을 IDE 콘솔이 아닌 stderr로 덤프 할 수 있습니다. swf에서 브라우저를 가리키는 몇 개의 스크립트를 함께 해킹하고, 60으로 계산하고, 브라우저를 죽이고 표준 오류를 확인합니다.

하지만 그건 끔찍한 일입니다.

자동 빌드 시스템에서 제대로 작동하는 명령 줄에서 빌드하고 실행할 수있는 방법이 있다고 생각합니다.

추가 합병증 : 저는 ActionScript가있는 상대적인 멍청한 분입니다 (~ 1 개월). 내 배경은 C++, makefile 등입니다. ide (build.xml 파일, 개미) 외부에 빌드하기 위해 수행해야했던 모든 작업은 그리스어로 완료되었으므로 찾을 수있는 예제에서 붙여 넣기 만했습니다. .

답변

1

내가 아는 한 swf를 실행하는 유일한 옵션은 브라우저 또는 독립 실행 형 플레이어에 있습니다. 테스트 결과에 도달하여 애플리케이션을 종료 할 수있는 한 플레이어에서 계속 실행하면 연속 통합 환경에 문제가 없어야합니다.

테스트 결과를 stdout으로 인쇄하려면 테스트리스 코어 인스턴스에 텍스트 수신기를 추가해야합니다.

core.addListener(TextListener.getDefaultTextListener(LogEventLevel.DEBUG));

테스트를 실행 한 후 응용 프로그램을 종료하려면 ...

예를 들어

System.exit(0);

, 최상위 수준의 MXML 파일은 다음과 같을 수 있습니다 ...

<?xml version="1.0" encoding="utf-8"?> 
<mx:Application 
    xmlns:mx="http://www.adobe.com/2006/mxml" 
    creationComplete="runMe()" 
    xmlns:adobe="http://www.adobe.com/2009/flexUnitUIRunner" 
    > 
    <mx:Script> 
     <![CDATA[ 
      import org.flexunit.runner.FlexUnitCore; 
      //import org.flexunit.listeners.UIListener; 
      //import org.flexunit.listeners.CIListener; 
      import org.flexunit.internals.TextListener; 
      import mx.logging.LogEventLevel; 
      import flash.system.System 
      import unit_tests.TestAuthentication.TestAuthentication 

      private var core:FlexUnitCore; 

      public function runMe():void { 
       core = new FlexUnitCore(); 
       //core.addListener(new UIListener(uiListener)); 
       //core.addListener(new CIListener()); 
       core.addListener(TextListener.getDefaultTextListener(LogEventLevel.DEBUG)); 
       core.run(TestAuthentication); 
       System.exit(0); 
      } 
     ]]> 
    </mx:Script> 
</mx:Application> 

그러면 출력을 구문 분석하면됩니다. 우리가 좋아할만큼 우아하지는 않지만 작동해야합니다.

관련 문제