2014-10-20 6 views
0

우리는 Chutzpah 테스트 어댑터를 사용하여 Visual Studio에서 QUnit 자바 스크립트 테스트를 실행하고 있습니다. 최근에 js 파일로 테스트중인 API를 변경하고 UserAgent http 헤더를 통해 몇 가지 검증을 추가 할 때까지 모든 것이 잘 동작하고있었습니다. 사용자 에이전트를 변경/모의하기 위해 테스트를 업데이트하려고 시도했을 때 overriding the default browser property으로 직접 가능하지 않다는 것을 깨달았습니다.Chutzpah를 사용하여 기본 Phantomjs 개체 설정을 변경하려면 어떻게해야합니까?

몇 일 청소 후에 마침내 정확히 무슨 일이 일어나는지 발견했습니다. Chutzpah는 테스트 파일을 실행할 phantomjs page 개체를 만듭니다. 이것은 Chutzpah adapter installation path에있는 기본 javascript 파일 (chutzpahRunner.js)에서 수행됩니다. 이들은 효과적으로 테스트를 시작, 파일의 마지막 라인은 다음과 같습니다 Phatomjs 페이지 settings object에 지정하여 사용자 에이전트 헤더를 변경 지원

... 
// Allows local files to make ajax calls to remote urls 
page.settings.localToRemoteUrlAccessEnabled = true; //(default false) 

// Stops all security (for example you can access content in other domain IFrames) 
page.settings.webSecurityEnabled = false; //(default true) 

page.open(testFile, pageOpenHandler); 
... 

. 나는 내 컴퓨터에서이 chutzpahRunner.js 파일을 편집하고 수동으로 다음과 같이이 사용자 에이전트를 설정 한 경우 :

page.settings.userAgent = "MyCustomUserAgent"; 

내 시험은 다시 일을 시작합니다. 문제는 이것이 프로젝트 그 자체가 아니기 때문에 나머지 팀원들과 공유 할 수 없다는 것입니다.

테스트를 실행하기 위해 Chutzpah가 만든 phantomjs 개체의 속성을 변경할 수 있습니까? 내 테스트 내에서 또는 파이프 라인에 임베드 할 수있는 다른 스크립트 파일에서 변경하고 싶습니다.

+1

Fork chutzpah를 작성하고 패치를 작성하십시오. 어쩌면 좋은 일을한다면 다시 병합 될 것입니다. –

답변

1

Chutzpah에서 코드를 변경하지 않으면 PhantomJS 개체에서 이러한 속성을 설정할 수 없습니다. 이 기능을 묻는 https://github.com/mmanela/chutzpah에 문제를 제기하고 Chutzpah를 fork/patch하여 추가하십시오 (또는 프로젝트의 개발자가이 문제를 해결할 때까지 기다리십시오).

업데이트 : 나는 fix for this issue을 밀었습니다. 이 파일이 출시되면 Chutzpah.json 파일에서 다음을 사용할 수 있습니다.

{ 
    "userAgent": "myUserAgent" 
} 
+0

안녕하세요, 매튜. 조심스럽게 내 게시물을 읽으면, 내가 이미 재정의 방법을 시도했음을 알게 될 것이며, 안타깝게도 제대로 작동하지 않습니다. 귀하의 첫 번째 옵션에 관해서는 문제를 프로젝트의 문제로 설명 할 수있는 시간이 조금 있음을 알게 될 것입니다. 그러나 관리자가 내 일을하는 것을 승인하지 않을 것이기 때문에 직접 패치 할 수는 없습니다. 그것에 시간을, 나는 집에서 PC를 작동하지 않습니다. 오늘 나는 수정 된 테스트 장치를 생성하기 위해 기본 기본 템플릿 html을 대체하려고 시도하면서이 마지막 시도를 저질렀지만 마침내 그것이 헛된 것임을 깨달았다. – julealgon

+0

수정해야하는 파일이 팬텀 실행 파일이었고, 전혀 액세스 할 수 없었습니다. 현재 우리는 User-Agent 헤더를 사용하고 계속 이동해야하는 테스트를 삭제하기로 결정했습니다. 나는 과정의 끝에 아주 슬프었다. ... 나는 전체 과정을 이해하는데 많은 시간을 할애했다 (나는 자바 스크립트에 대해 거의 알지 못한다. 그리고 그것들을 설치 한 것은 팀원이었다. 테스트), 결국에는 할 수있는 일은 거의 없었다. 코드 변경 없이는 불가능하다고 말하기 때문에 이것을 닫을 것입니다. – julealgon

+0

내가 코드 스 니펫을 테스트 해 보았을 때 내 대답에 userAgent 속성을 변경할 수있었습니다. 나는 그것을 서버에 보내면 테스트하지 않았다. 그렇지 않다는 것을 확인 했습니까? –