프로그래머의 일상: 다시 ActionScript 삽질

사실 이건 ActionScript 2.0 이라서 하는 삽질이다.

예전에 했던 작업을 동면에서 깨워, 다시 진행해야하는 상황이 되었다(이미 2.x주 전의 얘기). 그래서 요즘 C++ + ActionScript(2.0; Flash 8) 으로 작업하고 있는데, 나는 플래시 저작툴 라이센스가 하나도 없어서 MotionTwin 의 툴셋을 쓰고 있다. 덤으로 ASUnit 2.5 도 다시 끄집어 내서 사용 중.

예전에 Flex 로 액션스크립트 테스트를 한다는 글을 읽고, 다음에 이 쪽을 또하면 이용해보자란 생각을 했었다. 그렇지만 여전히 ActionScript 2.0 (≠Flex SDK)라서, 이걸 사용하는건 불가능.

일단 현재 테스트하는 환경/상태는 다음과 같다.

  • 수 개의 .as 파일에 대해, 이 파일 중 변경 사항이 있으면1, msbuild 를 실행시켜서 .swf 를 빌드해낸다.
  • msbuild는 .swf를 빌드하고, 이걸 특정 디렉토리로 복사한다.
  • python으로 작성한 웹 서버는 특정 디렉토리에 있는 파일들을 서비스하게 동작.
  • 웹 페이지 하나에 .swf 들을 embed 로 연결하고, 이 페이지에 http meta tag 중 refresh 태그를 이용해서 30초마다 다시 실행

그리고 조그맣게 띄워놓은 웹 브라우져로 실행 결과를 지켜보고 있다. 그러니까 아직 CI 툴에 붙일 수 없는 상태(=커맨드라인 실행이 불가능한 수준).

이에 대한 앞으로의 개선책(?)은 아래 정도. 처음 두 개는 @oscarplex 님의 조언을 듣고 정리한 것.

  • 테스트 결과를 받는 (python) 웹 서버를 하나 짜고, 이 서버가 정해진 형태로 유닛테스트 이름과, 결과를 받아서 (xml) 파일로 내보내는 방법
  • (웹브라우져에서) 출력하는 부분을 API hooking해서 내보내는 방법
  • 웹브라우져에서 드래그&복사는 되는걸로 봐서, 이걸 어떻게 자동화해버리는 방법

사실 1이 간단해보이는데(AS 2.0 통신용의 각종 모듈은 다 짜놨으니), 이거 다음주에 전달해주고나면 끝날지도 모르는데?2

고향에 놋북 들고왔으면 후다닥 짜버리면 땡인데 안들고왔으니 Orz.

ps. 사실 시간이 한 4주쯤 여유가 있으면 Python으로 ActionScript 코드 토해내게 짜버리고 싶다.


  1. 사실 파일 변경 시간(mtime)이 정해진 몇 개의 .swf 보다 최신인 파일이 있다면. ↩︎

  2. 하지만 난 2 년 쯤 전에도 이 생각을 했지. ↩︎