实习生 – ReferenceError:文档没有定义

当我试图从我的testing文件目录运行实习生testing时看到这个错误消息。 目录的(相关)结构是:

  • testing
    • 资源
      • rest
        • pickup.js
        • cashManagement.js
      • gitignore
      • intern.js
      • packages.js
      • packages.sample.js

inter.jssuite部分包含对testFile1.jstestFile2.js的引用。 我玩这两个文件被引用的方式,并得到了一个“无法加载模块…”的错误。 所以我想现在已经解决了,ReferenceError是我需要弄清楚的。 我确实去了现有的线程,似乎没有任何解决我的问题。 完整的错误信息被粘贴在下面。 如果需要,我会很乐意提供更多的相关信息。

谢谢,Eran

***ReferenceError: document is not defined** at /Applications/dojo-release-1.10.2/dojo/has.js:31:33 at execModule (/Users/eranbrand/src/MobilePosSolution/ovc-build/ovc-repo/src/test/node_modules/intern/node_modules/dojo/dojo.js:515:54) at /Users/eranbrand/src/MobilePosSolution/ovc-build/ovc-repo/src/test/node_modules/intern/node_modules/dojo/dojo.js:504:12 at Array.map (native) at execModule (/Users/eranbrand/src/MobilePosSolution/ovc-build/ovc-repo/src/test/node_modules/intern/node_modules/dojo/dojo.js:499:17) at /Users/eranbrand/src/MobilePosSolution/ovc-build/ovc-repo/src/test/node_modules/intern/node_modules/dojo/dojo.js:582:7 at guardCheckComplete (/Users/eranbrand/src/MobilePosSolution/ovc-build/ovc-repo/src/test/node_modules/intern/node_modules/dojo/dojo.js:566:4) at checkComplete (/Users/eranbrand/src/MobilePosSolution/ovc-build/ovc-repo/src/test/node_modules/intern/node_modules/dojo/dojo.js:574:27) at onLoadCallback (/Users/eranbrand/src/MobilePosSolution/ovc-build/ovc-repo/src/test/node_modules/intern/node_modules/dojo/dojo.js:656:7) at /Users/eranbrand/src/MobilePosSolution/ovc-build/ovc-repo/src/test/node_modules/intern/node_modules/dojo/dojo.js:761:5* 

以下是intern.js文件的内容:

 // Learn more about configuring this file at <https://github.com/theintern/intern/wiki/Configuring-Intern>. // These default settings work OK for most people. The options that *must* be changed below are the // packages, suites, excludeInstrumentation, and (if you want functional tests) functionalSuites. serviceURL = "http://ovc.local:8080/POSMClient/json/process/execute/"; define(['./packages'], function(Packages) { var returnValue = { // Configuration options for the module loader; any AMD configuration options supported by the specified AMD loader // can be used here loader: { packages: Packages.packages }, // The port on which the instrumenting proxy will listen proxyPort: 9000, // A fully qualified URL to the Intern proxy proxyUrl: 'http://localhost:9000/', // Default desired capabilities for all environments. Individual capabilities can be overridden by any of the // specified browser environments in the `environments` array below as well. See // https://code.google.com/p/selenium/wiki/DesiredCapabilities for standard Selenium capabilities and // https://saucelabs.com/docs/additional-config#desired-capabilities for Sauce Labs capabilities. // Note that the `build` capability will be filled in with the current commit ID from the Travis CI environment // automatically capabilities: { 'selenium-version': '2.39.0' }, // Browsers to run integration testing against. Note that version numbers must be strings if used with Sauce // OnDemand. Options that will be permutated are browserName, version, platform, and platformVersion; any other // capabilities options specified for an environment will be copied as-is environments: [/* { browserName: 'internet explorer', version: '11', platform: 'Windows 8.1' }, { browserName: 'internet explorer', version: '10', platform: 'Windows 8' }, { browserName: 'internet explorer', version: '9', platform: 'Windows 7' }, { browserName: 'firefox', version: '27', platform: [ 'OS X 10.6', 'Windows 7', 'Linux' ] }, { browserName: 'chrome', version: '32', platform: [ 'OS X 10.6', 'Windows 7', 'Linux' ] }, { browserName: 'safari', version: '6', platform: 'OS X 10.8' }, { browserName: 'safari', version: '7', platform: 'OS X 10.9' }*/ ], // Maximum number of simultaneous integration tests that should be executed on the remote WebDriver service maxConcurrency: 3, // Whether or not to start Sauce Connect before running tests useSauceConnect: false, // Connection information for the remote WebDriver service. If using Sauce Labs, keep your username and password // in the SAUCE_USERNAME and SAUCE_ACCESS_KEY environment variables unless you are sure you will NEVER be // publishing this configuration file somewhere webdriver: { host: 'localhost', port: 4444 }, // The desired AMD loader to use when running unit tests (client.html/client.js). Omit to use the default Dojo // loader useLoader: { 'host-node': 'dojo/dojo', 'host-browser': 'node_modules/dojo/dojo.js' }, // Non-functional test suite(s) to run in each browser suites: [ "rest/pickup", "rest/cashManagement" ], // Functional test suite(s) to run in each browser once non-functional tests are completed functionalSuites: [ /* 'myPackage/tests/functional' */ ], // A regular expression matching URLs to files that should not be included in code coverage analysis excludeInstrumentation: /^tests\// } return returnValue; }); 

看起来您正在使用Dojo的发布版本,它假定document对象将可用。 要使用该构build,您需要使用intern-runner或浏览器客户端( client.html )运行实习。 如果您希望使用节点客户端( intern-client )运行testing,则需要使用Dojo的源代码发布版或dojo npm软件包。