0
我正在嘗試爲使用Dojo 1.10.4的代碼編寫一些單元測試,到目前爲止我還沒有取得任何成功。我已經嘗試了很多東西,但我目前正在嘗試使用Intern 3.0.5。下面是我在intern.js目前有:在Intern 3.x中測試Dojo 1.x應用
define({
capabilities: { 'browserstack.selenium_version': '2.45.0' },
environments: [ { browserName: 'firefox', version: '40', platform: ['WINDOWS'] } ],
maxConcurrency: 2,
tunnel: 'NullTunnel',
//loaders: { 'host-browser': 'dojo/dojo.js' },
loaderOptions: {
packages: [
{ name: 'app', location: 'src' },
{ name: 'dojo', location: 'dojo' },
{ name: 'dijit', location: 'dijit' }
],
map: {
'*': {
'dojo': 'dojo',
},
'intern': {
'dojo': 'node_modules/intern/node_modules/dojo'
}
}
},
suites: ['tests/unit/ButtonTests'],
excludeInstrumentation: true,
useSauceConnect: false,
proxyPort: 9000,
proxyUrl: 'http://localhost:9000/'
});
dojoConfig = {
has: { 'dojo-undef-api': true }
};
我希望我可以讓實習生使用Dojo 2裝載機,它附帶的,但後來在道場1.10.4點我的代碼,所以我在loaderOptions中設置了一個地圖來處理這個問題。不幸的是,我的代碼似乎並沒有被拾起正確副本,我得到這個錯誤:
× firefox 40 on WINDOWS - unit tests - Button tests - icon uses correct class (0.001s)
TypeError: target is null
at on <dojo\on.js:69:6>
at clazz<._initializeEventHandlers <src\Button.js:35:1>
at clazz<.constructor <src\Button.js:29:9>
at singleConstructor/< <dojo\_base\declare.js:440:5>
@http://localhost:9000/tests/unit/ButtonTests.js:19:20
at Test.prototype.run/< <__intern\lib\Test.js:211:19>
at Promise/this.then/</< <node_modules\intern\node_modules\dojo\Promise.ts:393:15>
at runCallbacks <node_modules\intern\node_modules\dojo\Promise.ts:11:2>
at settle/< <node_modules\intern\node_modules\dojo\Promise.ts:317:4>
at run <node_modules\intern\node_modules\dojo\Promise.ts:237:7>
at CallbackQueue</CallbackQueue.prototype.drain <node_modules\intern\node_modules\dojo\CallbackQueue.ts:39:4>
at nextTick</observer< <node_modules\intern\node_modules\dojo\nextTick.ts:63:4>
我也試圖使實習生使用隨道場1.10,而不是一個它附帶的裝載機,它在上面粘貼的配置中被註釋掉了。當我這樣做,我得到這個錯誤:
Suite firefox 40 on WINDOWS - unit tests FAILED
Error: xhrFailed
at makeError <dojo\dojo.js:106:15>
at req.getText <dojo\dojo.js:331:1>
at injectModule <dojo\dojo.js:1539:8>
at forEach <dojo\dojo.js:93:6>
at injectDependencies/< <dojo\dojo.js:758:5>
at guardCheckComplete <dojo\dojo.js:1277:5>
at injectDependencies <dojo\dojo.js:757:4>
at runDefQ/< <dojo\dojo.js:1621:6>
at forEach <dojo\dojo.js:93:6>
at runDefQ <dojo\dojo.js:1620:5>
at injectModule/xhrCallback <dojo\dojo.js:1488:9>
at req.getText <dojo\dojo.js:328:7>
at injectModule <dojo\dojo.js:1539:8>
at forEach <dojo\dojo.js:93:6>
at injectDependencies/< <dojo\dojo.js:758:5>
at guardCheckComplete <dojo\dojo.js:1277:5>
at injectDependencies <dojo\dojo.js:757:4>
at contextRequire <dojo\dojo.js:821:6>
at req <dojo\dojo.js:124:11>
at PreExecutor.prototype._loadExecutorWithLoader/< <__intern\lib\executors\PreExecutor.js:287:5>
at Promise <__intern\node_modules\dojo\Promise.js:172:17>
at PreExecutor.prototype._loadExecutorWithLoader <__intern\lib\executors\PreExecutor.js:286:1>
at loadExecutorWithLoader <__intern\lib\executors\PreExecutor.js:365:12>
at Promise/this.then/</< <__intern\node_modules\dojo\Promise.js:156:41>
at runCallbacks <__intern\node_modules\dojo\Promise.js:19:13>
at settle/< <__intern\node_modules\dojo\Promise.js:103:21>
at run <__intern\node_modules\dojo\Promise.js:51:33>
at CallbackQueue</CallbackQueue.prototype.drain <__intern\node_modules\dojo\CallbackQueue.js:39:21>
at nextTick</observer< <__intern\node_modules\dojo\nextTick.js:52:21>
我也收到此錯誤昨天,但我不記得確切我做到了!我試圖用PhantomJS,這樣可能會做它:
Error: Repeated sequence for session 08ee5fa0-67a6-11e5-9d1c-49f2f4677a77: 0 last 0 cur
at Proxy._publishInSequence <node_modules\intern\lib\Proxy.js:181:11>
at IncomingMessage.<anonymous> <node_modules\intern\lib\Proxy.js:63:39>
at IncomingMessage.emit <events.js:104:17>
at <_stream_readable.js:908:16>
at process._tickCallback <node.js:355:11>
在一個側面說明,我應該能夠在intern.js結束設置dojoConfig像我上面做什麼?我想啓用dojo-undef-api。
任何幫助將不勝感激!
感謝您的回覆!不幸的是,我不認爲我有機會嘗試一下,因爲我設法讓所有的東西都能在Jasmine/Karma而不是Intern中運行起來。如果其他人發現這個答案有助於讓Dojo 1和Intern 3和諧運行,我會將其標記爲解決方案。 – donkey