저는 인턴으로 내 이빨을 절단하고 있고 힘들어하고 있습니다. 필자는 기본 package.json과 intern.js 및 테스트 모듈이 포함 된 단일 모듈을 사용하여 상황을 단일 interntest
폴더로 단순화했습니다.인턴이 명령 줄에서 nodemailer를 찾았지만 모듈이 필요하지 않습니다.
interntest/
package.json
src/
mymodule/
test/
intern.js
MyTest.js
내 package.json 내가이 디렉토리에 노드를 실행하는 데 필요한 기본적인 종속성을 나열
{
"name": "interntest",
"version": "1.0.0",
"dependencies": {
"intern": "1.3.2",
"nedb": "~0.9.3",
"nodemailer": "~0.5.14",
"requirejs": "",
"dojo": "1.9.2"
}
}
npm install
즉각적인 문제는 사용하려는 모듈의 nedb
및 nodemailer
입니다. 나는 단순히과 같이 intern.js에 선언 할 수 있다고 생각했다 :
loader: {
// Packages that should be registered with the loader in each testing environment
packages: [
'node',
'nedb',
'nodemailer',
를 그리고 단순히으로 MyTest.js 필요 :
define([
'intern!tdd',
'intern/chai!assert',
'nedb',
'nodemailer'
], function (test, assert, Datastore, nodemailer) {
그러나 올바르게 지정 node_modules/nedb/package.json
에도 불구하고, nedb
를로드 할 수없는 것 main: 'index'
.
[email protected]:~/src/interntest$ ./node_modules/.bin/intern-client config=src/mymodule/test/intern suites=mymodule/test/MyTest
Defaulting to "console" reporter
Error: Failed to load module nedb/main from /home/neek/src/interntest/node_modules/nedb/main.js (parent: mymodule/test/MyTest)
at /home/neek/src/interntest/node_modules/intern/node_modules/dojo/dojo.js:742:12
at fs.js:207:20
at Object.oncomplete (fs.js:107:15)
것은이 문제를 좀하려고하기 위해, 나는 MyTest.js
이를 가진 끝 :
define([
'intern!tdd',
'intern/chai!assert',
'nedb/index',
'nodemailer/lib/nodemailer'
이 잘못 보이지만 적어도 어느은 .js를로드하는 초기 실패 주위에 들어간 것과 모든 파일 모듈. 그러나,이 치명적 결함이 보인다
[email protected]:~/src/interntest$ ./node_modules/.bin/intern-client config=src/mymodule/test/intern suites=mymodule/test/MyTest
Defaulting to "console" reporter
Error: Attempt to require unloaded module lib/datastore
at contextRequire (/home/neek/src/interntest/node_modules/intern/node_modules/dojo/dojo.js:255:12)
at req (/home/neek/src/interntest/node_modules/intern/node_modules/dojo/dojo.js:30:10)
at /home/neek/src/interntest/node_modules/nedb/index.js:7:17
at Function.vm.runInThisContext (/home/neek/src/interntest/node_modules/intern/node_modules/istanbul/lib/hook.js:163:16)
at /home/neek/src/interntest/node_modules/intern/node_modules/dojo/dojo.js:745:8
at fs.js:266:14
at Object.oncomplete (fs.js:107:15)
그래서 nedb/index.js
을 찾은 후, 지금 그 파일, require('./lib/datastore')
내에서 참조 상대 경로를 찾기 위해 실패합니다.
분명히 나는 기본적인 것을 왜곡 시켰습니다. 누군가 제발 도와 줄 수 있니?
https://github.com/theintern/intern/wiki/Writing-Tests-with-Internals에서 "비 AMD 코드 테스트"섹션을 보았습니까? –