인턴 유닛 테스트가 테스트중인 소스 코드와 다른 디렉토리 트리에 있어야하는 프로젝트가 있습니다. 다소 다음과 같이 : 인턴 구성 파일에서Selenium을 통해 테스트를 실행할 때 Intern 디렉토리 외부의 종속성로드
projectRoot
projectRoot/src
projectRoot/tests
projectRoot/tests/intern.js
projectRoot/tests/node_modules/intern
projectRoot/tests/MyTestSuite.js
, I는 단위 테스트 스위트에서 src
에 도달 ../
와 상대 경로를 사용하는 AMD 패키지를 정의합니다.
define({
environments: [ { browserName: 'chrome', platform: 'WINDOWS' }],
webdriver: { host: 'localhost', port: 4444 },
useSauceConnect: false,
loader: {
packages: [
{ name: 'testSuites', location: '.' },
{ name: 'externalDep', location: '../src' }
]
},
suites: [ 'testSuites/MyTestSuite' ]
});
과 일치하는 단위 테스트 스위트 브라우저 (client.html) 또는 노드 (client.js)에서 직접 테스트 할 때 잘 작동
define([ "intern!tdd", "intern/chai!assert","externalDep/ExternalDep"],
function(tdd, assert, ExternalDep) {
tdd.suite("Suite that has external dependency", function() {
tdd.test("Test if external dependency is loaded correctly", function() {
assert(ExternalDep === "hello");
});
});
}
);
예를 들면 다음과 같습니다 구성입니다. 그러나 Selenium Server (runner.js 포함)를 통해 실행되면 Selenium에서 시작한 브라우저에서 실행중인 client.html은 외부 종속성을 찾을 수 없습니다. 위의 예에서 ExternalDep을 http://localhost:9000/__intern/src/ExternalDep.js
, 즉 src
디렉터리가 인턴 내에 없기 때문에 404를 요청하려고합니다.
필자는 intern.js를 테스트와 소스 코드 모두의 최상위 공통 수퍼 디렉토리에 넣으면 작동한다고 가정합니다. 그러나 우리 프로젝트는 현재 비실용적 인 방식으로 설정되어 있습니다. 인턴 구성 파일의 위치를 벗어나는 소스를 구성하는 방법이 있습니까? 아니면 그냥 바보 같은 실수를 저 지르지 않았습니까?
감사합니다.
동일한 문제가있을 수 있습니다. 여기에서 문제를 열었습니다. https://github.com/theintern/intern/issues/204 – ben