【问题标题】:Intern - ReferenceError: document is not defined实习生 - ReferenceError:文档未定义
【发布时间】:2014-11-07 13:54:12
【问题描述】:

当我尝试从我的测试文件目录中运行实习生测试时看到此错误消息。目录的(相关)结构是:

  • 测试
    • 资源
      • 休息
        • pickup.js
        • cashManagement.js
      • gitignore
      • intern.js
      • packages.js
      • packages.sample.js
      • ...

inter.js 在 suites 部分中包含对 testFile1.jstestFile2.js 的引用。我对这两个文件的引用方式进行了一些尝试,并得到了“加载模块失败...”错误。所以我想现在已经解决了,ReferenceError 是我需要弄清楚的。我确实检查了现有的线程,似乎没有什么能解决我的问题。完整的错误消息粘贴在下面。如果需要,我很乐意提供更多相关信息。

谢谢, 伊兰

***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;
});

【问题讨论】:

  • 你能不能也展示一下使用的是什么配置?
  • 当然。你是说intern.js 文件吗?
  • 将 intern.js 添加到原始问题中。 (粘贴的 JS 格式有点乱。它在“Here's the content of the intern.js file”行之后开始,在“return returnValue;”行之后结束)。
  • 你的实习生怎么样?浏览器客户端、实习生客户端还是实习生跑者?
  • 我正在使用以下目录从目录运行它:intern-client config=intern.js

标签: javascript node.js intern


【解决方案1】:

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

【讨论】:

  • 非常感谢杰森。你知道我在哪里可以找到它是如何完成的样本吗?谢谢。 EB
  • Intern wiki 中有一些基本说明。要使用intern-runner,最简单的方法是启动本地Selenium 服务器,将intern.js 中的tunnel 选项设置为“NullTunnel”,然后使用intern-runner 而不是intern-client 运行intern。要使用浏览器客户端,您的代码必须可以通过网络服务器访问;假设您在 localhost:8080 提供测试目录,请在浏览器中加载 http://localhost:8080/node_modules/intern/client.html?config=tests/intern
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-11
  • 2016-09-04
  • 1970-01-01
  • 1970-01-01
  • 2018-04-16
  • 1970-01-01
相关资源
最近更新 更多