모카의 글로벌`before`와`beforeEach`?
나는 지금 자바 스크립트 단위 테스트를 위해 mocha를 사용하고 있습니다.
나는 몇 가지 테스트 파일을 가지고, 각각의 파일은을 가지고 before
하고 beforeEach
있지만, 정확히 동일합니다.
글로벌 before
및 beforeEach
전체 (또는 일부)를 어떻게 제공합니까?
before
또는 beforeEach
별도의 파일 (을 사용 spec_helper.coffee
) 에 선언 하고 필요합니다.
spec_helper.coffee
afterEach (done) ->
async.parallel [
(cb) -> Listing.remove {}, cb
(cb) -> Server.remove {}, cb
], ->
done()
test_something.coffee
require './spec_helper'
테스트 폴더의 루트에서 test/helper.js
before 및 beforeEach가 있는 전역 테스트 도우미 를 만듭니다.
// globals
global.assert = require('assert');
// setup
before();
beforeEach();
// teardown
after();
afterEach();
로부터 모카 문서 ...
루트 레벨 후크
파일을 선택하고 "루트"수준의 후크를 추가 할 수도 있습니다. 예를 들어 모든 describe () 블록 외부에 beforeEach ()를 추가합니다. 이것은 그것이 존재하는 파일에 관계없이 모든 테스트 케이스 이전에 beforeEach ()에 대한 콜백을 실행하게 할 것입니다 (이것은 Mocha가“root suite라고 불리는 묵시적 describe () 블록을 가지고 있기 때문입니다.
모든 일반 describe()
스위트는 먼저 수집 된 다음 실행됩니다. 이것은 먼저 호출되는 것을 보장합니다.
'use strict'
let run = false
beforeEach(function() {
if ( run === true ) return
console.log('GLOBAL ############################')
run = true
});
매 테스트 전에 매번 실행되는 것을 보려면 실행 플래그를 제거하십시오.
이 파일의 이름을 test/_beforeAll.test.js
. 어디에서든 가져 오거나 필요로 할 필요는 없지만 파일 이름 의 .test.
(resp. .spec.
)는 중요하므로 테스트 실행자가 선택합니다.
보너스 트랙 8-) : mocha.opts
\ o / 사용
무언가가 있다면 테스트를 실행하기 전에 한 번만 설정하고 싶을 것입니다 (어떤 테스트이든 ...) mocha.opts
. 놀랍도록 우아한 옵션입니다! – require
파일 에 a 를 추가 하십시오 (예, 모카에 거의 기여하지 않지만 테스트 설정에 기여 함). 이전에 한 번 안정적으로 실행됩니다.
(이 예에서는 단일 테스트 또는 여러 테스트가 실행될 예정인지 감지합니다. 전자의 경우 every를 출력 log.info()
하고 전체 실행에서는 자세한 정도를 error + warn ...)
최신 정보:
누군가가에서 실행될 모카 스위트의 기본 속성에 액세스하는 방법을 알고 있다면 once.js
여기에 추가하고 싶습니다. (즉, 내- suiteMode
감지가 형편없고, 다른 감지 방법이 있다면 실행해야 할 테스트 수…)
모듈을 사용하면 테스트 스위트에 대한 전역 설정 / 해체를 쉽게 할 수 있습니다. 다음은 RequireJS (AMD 모듈)를 사용하는 예입니다.
먼저 글로벌 설정 / 해체로 테스트 환경을 정의하겠습니다.
// test-env.js
define('test-env', [], function() {
// One can store globals, which will be available within the
// whole test suite.
var my_global = true;
before(function() {
// global setup
});
return after(function() {
// global teardown
});
});
JS 실행기에서 (mocha의 HTML 실행기에 다른 라이브러리 및 테스트 파일과 함께 <script type="text/javascript">…</script>
, 또는 그 이상으로 외부 JS 파일로 포함됨 ) :
require([
// this is the important thing: require the test-env dependency first
'test-env',
// then, require the specs
'some-test-file'
], function() {
mocha.run();
});
some-test-file.js
다음과 같이 구현할 수 있습니다.
// some-test-file.js
define(['unit-under-test'], function(UnitUnderTest) {
return describe('Some unit under test', function() {
before(function() {
// locally "global" setup
});
beforeEach(function() {
});
afterEach(function() {
});
after(function() {
// locally "global" teardown
});
it('exists', function() {
// let's specify the unit under test
});
});
});
참고 URL : https://stackoverflow.com/questions/10561598/global-before-and-beforeeach-for-mocha
'developer tip' 카테고리의 다른 글
정적 코드 블록 (0) | 2020.11.27 |
---|---|
C ++ 참조로 배열 전달 (0) | 2020.11.27 |
정규 표현식으로 겹치는 일치를 찾는 방법은 무엇입니까? (0) | 2020.11.27 |
요소를 기울이면서 텍스트를 정상적으로 유지하는 방법 (비뚤어지지 않음) (0) | 2020.11.27 |
파일이 있고 IS 디렉토리가 있지만 listFiles ()가 null을 반환합니다. (0) | 2020.11.27 |