2013-02-11 4 views
4

를 실행의 제목 (이름)을 얻을 나는이 같은 각 QUnit 테스트에서 콘솔에 빠른 분리를 기록하고 싶습니다 :현재 QUnit 테스트

test("hello test", function() { 
    testTitle = XXX; // get "hello test" here 
    console.log("========= " + testTitle + "=============="); 
    // my test follows here 
}); 

이 어떻게 (아마도라고도 "이름을 제목을 얻을 수 있습니다 ") 테스트?

+0

테스트를 실행하는 시나리오를 피해야하며 통과 여부를 알기 위해 로그를 읽어야합니다. 이것은 자동화 된 테스트의 이점 대부분을 무시합니다! 로그가 단지 여분의 정보를 제공하는 것이라면 아무런 문제가 없습니다. –

답변

8

callbacks of QUnit을 사용하면이를 달성 할 수 있습니다. 그것은이를 넣어

QUnit.begin = function() { 
    console.log('####'); 
}; 

QUnit.testStart = function(test) { 
    var module = test.module ? test.module : ''; 
    console.log('#' + module + " " + test.name + ": started."); 
}; 

QUnit.testDone = function(test) { 
    var module = test.module ? test.module : ''; 
    console.log('#' + module + " " + test.name + ": done."); 
    console.log('####'); 
}; 

: 그들은 여기

내 테스트 스위트에서 예입니다 (... 각 모듈 후, 각 시험 전에 예) 테스트를 실행하는 동안 여러 다른 지점에서 호출 helper.js이라는 파일에 저장하고 테스트 index.html 페이지에 포함하십시오.

그것은 다음과 같은 출력을 생성합니다

#### 
#kort-Availability Includes: started. 
#kort-Availability Includes: done. 
#### 
#kort-UrlLib Constructor: started. 
#kort-UrlLib Constructor: done. 
#### 
#kort-UrlLib getCurrentUrl: started. 
#kort-UrlLib getCurrentUrl: done. 
#### 
+0

이것은 QUnit 테스트 생성기를 테스트하는 데 큰 도움이되었습니다. :) 감사. –

0

당신은 Javascriptarguments 객체를 시도해야합니다 (here 자세히) :

test("hello test", function() { 
    testTitle = arguments.callee.caller.arguments[0]; // get "hello test" here 
    console.log("========= " + testTitle + "=============="); 
    // my test follows here 
}); 

편집 : 나는 그것이 작동하는 방법의 jsFiddle example을 작은을 만들어 (문서화) 한
.
내 대답은 순수한 JavaScript이며 QUnit에 대해서만 유효합니다.

+1

가 작동하지 않습니다.'arguments.callee.caller.arguments [0]'은 'undefined'입니다. – nachtigall

+0

그것이 왜 효과가 없었던 지 잘 모르겠습니다. 확인 : http://jsfiddle.net/Uc8fs/ –

+2

QUnit이 test()를 호출하는 특정 방식으로 인해 작동하지 않습니다. 그래서 일반적으로 작동합니다, 그렇습니다. 그러나이 QUnit 상황에서는 그렇지 않습니다. 어쨌든, 지금 적절한 솔루션을 가지고 :) 그럼에도 불구하고, 고마워요! – nachtigall

1

그것은이 솔루션을 사용하기 간단합니다

test("hello test", function(assert) { 
    testTitle = assert.test.testName; // get "hello test" here 
    console.log("========= " + testTitle + "=============="); 
    // my test follows here 
}); 

========= 안녕하세요 테스트를 ======== ======

0

QUnit.config.current는 현재 실행중인 테스트가 들어있는 Object입니다. 따라서 console.log (QUnit.config.current)와 같이 표시 할 수 있습니다. 이 개체의 많은 매개 변수 (testName, started ..)를 변경할 수 있습니다.

QUnit.test("some test", function() { 
    console.log(QUnit.config.current.testName); 
}); 
+0

나는 길이와 내용 때문에 품질이 좋지 않다는 이유로이 대답을 보았습니다. 제발 코드를 "덤프"하지 말고 오히려 코드가하는 것과 왜 그것이 작동해야하는지에 대한 설명을 제공하십시오. –

+0

QUnit.config.current는 현재 실행중인 테스트가 들어있는 Object입니다. 따라서 console.log (QUnit.config.current)와 같이 표시 할 수 있습니다. 이 개체의 많은 매개 변수 (testName, started ..)를 변경할 수 있습니다. – collo21

+0

이 정보를 답안에 편집 해 주시겠습니까? –

관련 문제