John Leach 씨가 Frizione(클러치의 이탈리아어)이라는 이름의 진짜 멋진 새로운 오픈 소스 프로젝트를 작성했습니다.

Frizione는 "JavaScript 개발, 테스트, 배포 환경입니다. 그것은 어떠한 형태의 브라우저 기반 JavaScript 개발이라도 지원할 수 있는 여러 툴들의 조합이며 Gears도 지원합니다."

Frizione은 웹 서버로서 실행할 수 있으며, 몇 가지 서비스를 제공해줄 것입니다:

Compressor Service
압축 서비스는 JavaScript 파일의 주석과 불필요한 공백을 제거합니다. 이는 -o 옵션을 지정하지 않으면 원래의 JavaScript 파일이 덮어써지므로 파괴적인 기능이 되지 않도록 주의하셔야 합니다.

이 서비스를 호출하려면, URL의 일부로서 JavaScript 파일의 절대 경로를 추가해 POST 요청을 /run_compressor에 보냅니다. 그러면 Clutch는 JavaScript 파일을 압축할 것입니다. 추가적인 요청 파라미터로는 YUIComressor 명령행 옵션을 사용해 압축기의 동작을 수정하는 옵션이 있습니다.

Fixture Service
정착 서비스는 텍스트를 하드 디스크에 저장하도록 합니다. POST 요청을 하면 서비스는 POST 데이터를 URL에 지정된 파일에 씁니다. ERB를 사용하여 POST 요청에 파라미터를 지정해서 컨텐트를 수정하는 옵션을 줄 수도 있습니다. 이 서비스를 호출하려면, URL의 일부로 출력할 텍스트 파일의 절대 경로를 추가해 /run_fixture로 POST 요청을 전송합니다.

Join Service
결합 서비스는 ERB를 사용해서 목록의 텍스트 파일들을 하나로 합친 단일 파일을 생성합니다. 각 파일들은 자기 자신에 대한 상대경로로 포함할 다른 파일의 URL을 지정한 include 명령을 포함할 수 있습니다. 이 프로세스는 포함된 파일 내에서도 중첩해서 반복될 수 있습니다. 이 서비스를 호출하려면, URL의 일부로 텍스트 파일의 절대 경로를 지정하여 /run_join으로 POST 요청을 전송합니다. 그러면 Clutch는 결합된 파일들을 생성할 것입니다. 요청할 파라미터는 합쳐진 결과 파일의 대상 절대경로인 URL을 설정하는데 필요합니다.

JSLint Service
원래의 lint 프로그램은 런타임 버그를 일으키는 잠재적(혹은 미세한) 실수를 위해 C 소스코드를 분석합니다. 최근의 C 컴파일러들은 충분한 문법적 의미적 검사를 제공하고 있어 lint가 필요하거나 사용되는 경우가 드물어졌습니다.

JavaScript 개발자들에게 다행히, Douglas Crockford 씨가 JavaScript를 위한 lint 프로그램을 JavaScript로 작성했고, 이는 JSLint라 불립니다. 테스트 전에 잠재적인 문제 코드를 찾아내고 제거하는 것이 적어도 저에게는 필수적인 프로세스였습니다. 안타깝지만, 웹페이지에 복사하고 붙여넣는 것은 그 자체가 이미 에러가 나기 일쑤입니다.

Clutch는 JSLint에 의해 로컬에서 분석될 수 있는 JavaScript 코드에서 읽을 수 있는 정적인 HTML 페이지를 생성함으로써 이러한 문제를 감소시킵니다. 할 일이라고는 분석을 원하는 각 JavaScript 파일을 위한 정적인 페이지만 한번 만들어주시면 됩니다.

이 서비스를 호출하기 위해서는 URL에 JavaScript 파일의 절대 경로를 지정하고 POST 요청을 /run_jslint 로 전송합니다. 그러면 Clutch에서 JSLint 페이지에서 자동으로 JavaScript 파일을 읽어들일 /jslint 폴더 아래에 정적 HTML 파일을 생성할 것입니다. /jslint/index.html 페이지의 정적 HTML에 대한 링크를 추가하실 수도 있습니다.

Test Service
테스트 서비스는 주어진 JavaScript 파일을 위한 정적 HTML 파일의 run/view 쌍을 생성합니다. 두 개의 HTML 파일을 사용하는 이유는 "Unit Testing" 섹션 아래에 설명되어있습니다.

이 서비스는 join service와 유사한 기능을 제공합니다. 목록의 JavaScript 파일들을 하나로 합치기 위해 ERB를 사용하며 합쳐진 하나의 JavaScript 파일을 생성하지만, 해당 파라미터가 지정되어있을 경우에만 그렇습니다.

이 서비스를 호출하려면, URL에 JavaScript 파일의 절대 경로를 지정하여 POST 요청을 /run_test로 전송합니다. 그러면 Clutch에서 두 개의 정적인 HTML 파일을 생성할 것입니다.

The Unit Test Framework
프레임웍은 잘 알려진 JUnit Java 테스팅 프레임웍과 유사한 유형을 따릅니다.

보통의 JavaScript 객체에 테스트 메소드를 만들면 상단의 첫번째 예제에서 보여드린 바와 같이 clutch.unittest 함수 호출에서 그 객체를 래핑합니다. 테스트 객체의 모든 함수는 단위 테스트 프레임웍에 의해 실행되지만, 함수의 실행 순서는 보증할 수 없습니다.

testxxx 함수가 실행되기 전에, 단위 테스트 프레임웍은 테스트 객체의 setUp 함수를 실행합니다. tsetxxx 함수가 실행되고 난 후에, 단위 테스트 프레임웍은 객체 내의 tearDown 함수를 실행합니다. Clutch는 테스트 객체에 해당 함수가 존재하지 않으면 setUp과 tearDown 함수를 아무런 동작을 하지 않는 함수로 기본제공합니다.

from Frizone: JavaScript dev, test, and deplyment environment
Posted by 행복한고니 트랙백 0 : 댓글 0