标签: intern

在实习生中加载项目目录之外的依赖项

这个问题的答案并没有回答我的问题.

我想使用Intern作为我的测试框架从项目根目录外部加载依赖项.我目前正在使用以下目录结构:

www/
    project1/
        app/
        lib/
    project2/
        app/
        lib/
    intern-tests/
        node_modules/
        tests/
            functional/
                project1-tests/
                project2-tests/
            unit/
                project1-tests/
                project2-tests/
            intern.js
        Gruntfile.js
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我正在制作intern-tests自己的项目,并希望此目录能够保存我所有项目的所有测试.我已经设置了我的Gruntfile来执行使用grunt exec库将命令转换为的测试.一切正常,但我的单元测试无法加载和目录中的依赖项.grunt projectNamegrunt test --project=projectNameproject1/project2/

例如,这是我的单元测试之一:

define([
    'intern!object',
    'intern/chai!assert',
    'jquery',
    '../../../../project2/lib/js/var/document',
    '../../../../project2/lib/js/exports/file/functions/resizeInput'
], function(registerSuite, assert, $, document, resizeInput) {
    registerSuite({
        name: 'functions',
        resizeInput: function() {
            var $input = $(document.createElement('input'));
            resizeInput($input, 8, 20, 450, 200);
            assert.equal($input.width(), 450);
        }
    });
});
Run Code Online (Sandbox Code Playgroud)

并运行该测试给我以下错误:

SUITE ERROR
Error: Failed to load module ../project2/lib/js/var/document from …
Run Code Online (Sandbox Code Playgroud)

javascript dojo unit-testing amd intern

16
推荐指数
1
解决办法
541
查看次数

什么是"!" nodejs模块名称中的字符?

我已经开始使用实习库在js中编写功能测试,我意识到我无法理解这种语法:

var assert = require('intern/chai!assert');
var registerSuite = require('intern!object');
Run Code Online (Sandbox Code Playgroud)

方法!论证中字符的用途是什么require()

javascript amd node.js node-modules intern

16
推荐指数
1
解决办法
688
查看次数

从命令行启动Chrome仿真

我使用带有Intern的Google Chrome来运行自动化测试,我想知道是否有办法从CLI启动Chrome模拟模式或使用特定标记测试移动呈现.如果没有,你知道一个好的解决方法吗?

我可以直接使用Android模拟器(来自Android SDK)与Selenium Webdriver apk或移动Chrome,但测试大部分时间都在崩溃,模拟器没有响应,我必须重新启动它.此外,我需要测试最大可能范围,不仅限于Android设备.桌面上的Chrome更加稳定,即使测试失败,Chrome也会响应并可以由Intern自动关闭.

我尝试了一个使用"--enable-touch-events"标志和自定义userAgent的解决方法,但它产生了奇怪的行为.也许其他一些旗帜会对我有帮助吗?

提前感谢您的回答.

google-chrome webdriver google-chrome-devtools intern

14
推荐指数
1
解决办法
2780
查看次数

如何设置Selenium 2 Server,以便实习生可以在一台浏览器上本地运行功能测试?

我想尝试在本地计算机上的单个浏览器上运行Intern功能测试(即使用webdriver). 医生说我需要一个"Selenium 2服务器".

如何正确设置服务器?我是否需要从实习生单独下载并安装它?(如果是这样,怎么样?)在调用"node runner.js"之前,我是否需要将其作为一个单独的进程启动?(如果是这样,怎么样?)

intern

13
推荐指数
1
解决办法
3848
查看次数

未知错误:无法写入prefs文件

使用以下运行器运行功能测试时,我一直收到错误:-selenium 2.44 -Chrome Driver -Windows Server 2008 R2 Enterprise

Error Description: Listening on 0.0.0.0:7000
Starting tunnel...
UnknownError: [POST http://test.com/wd/hub/session / {"de
siredCapabilities":{"browserName":"chrome","name":"tests/intern","idle-timeout":
60,"selenium-version":"2.44.0"}}] unknown error: failed to write prefs file
(Driver info: chromedriver=2.12.301325 (962dea43ddd90e7e4224a03fa3c36a421281ab
b7),platform=Windows NT 6.1 SP1 x86_64) (WARNING: The server did not provide any
stacktrace information)
Command duration or timeout: 1.06 seconds
Run Code Online (Sandbox Code Playgroud)

有没有人遇到过这样的问题?我该如何解决?建议请

selenium-chromedriver intern leadfoot

8
推荐指数
3
解决办法
8587
查看次数

实习生配置不处理AMD垫片

我正在尝试使用Intern测试Require.js项目.我在我的测试中遇到错误,在加载jQuery插件时没有定义jQuery.我的loader配置如下所示:

loader: {
    // Aliased paths
  paths: {
    'dt': 'dt',
    'jq': 'jquery',

    'jquery': 'jquery/jquery-1.8.3',
    'jquerymx': 'jquery/jquerymx-3.2.custom',
    'jquery.ui': 'jquery/jquery-ui-1.9.2.custom.min',
    'jquery.ui.widget': 'jquery/jquery.ui.widget',
    'jquery.jscrollpane': 'jquery/jquery.jscrollpane.min.edit',
    'jquery.colorbox': 'jquery/jquery.colorbox-min',
    'jquery.selectbox': 'jquery/jquery.selectbox-0.2.min.edit',
    'jquery.base64': 'jquery/jquery.base64',
    'jquery.cookie': 'jquery/jquery.cookie',
    'jquery.urldecoder': 'jquery/jquery.urldecoder.min',
    'jquery.fileupload': 'jquery/jquery.fileupload',
    'jquery.history': 'history/scripts/compressed/history.adapter.jquery',

    'openajax': 'openajax_2.0.7/OpenAjaxUnmanagedHub',
    'zeroclipboard': 'zeroclipboard/ZeroClipboard'
  },

  // Plugin mappings
  map: {
    '*': {
      'css': 'requirejs/require-css/css',
      'text': 'requirejs/text'
    }
  },

  // Shims for non-AMD libraries, mainly jQuery plugins
  shim: {
    'openajax': {
      exports: 'OpenAjax'
    },

    'zeroclipboard': {
      exports: 'ZeroClipboard'
    },

    'jquerymx': ['jquery'],
    'jquery.ui': ['jquery'],
    'jquery.ui.widget': ['jquery'], …
Run Code Online (Sandbox Code Playgroud)

intern

7
推荐指数
1
解决办法
914
查看次数

如何在CircleCI上连接到本机Selenium

我正在使用Intern运行一系列功能测试,并遵循他们与Chromedriver连接到本地Selenium的建议.

在本地,一切都运作良好,但在CircleCI我得到:

Error: [POST http://localhost:4444/wd/hub/session] connect ECONNREFUSED

这是否与在CircleCI上如何设置本机Selenium有关?我是否必须在后台手动运行(如此处所述),或者它是否已经默认运行,我只是没有正确连接?

selenium circleci intern

7
推荐指数
1
解决办法
405
查看次数

通过Selenium运行测试时,在Intern目录之外加载依赖项

我有一个项目,其中实习单元测试应该在与测试中的源代码不同的目录树中.有点像这样:

projectRoot
projectRoot/src
projectRoot/tests
projectRoot/tests/intern.js
projectRoot/tests/node_modules/intern
projectRoot/tests/MyTestSuite.js
Run Code Online (Sandbox Code Playgroud)

在Intern配置文件中,我定义了一个AMD软件包,该软件包使用从单元测试套件../到达的相对路径src.这是一个示例配置:

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' ]
});
Run Code Online (Sandbox Code Playgroud)

还有一个匹配的单元测试套件

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"); …
Run Code Online (Sandbox Code Playgroud)

intern

6
推荐指数
1
解决办法
636
查看次数

如何在Intern 2功能测试中加载pollUntil帮助器

实习生2文档提供了以下在加载测试页面后等待条件为真的示例:

this.remote
    .get(require.toUrl('./SomeTest.html'))
    .then(pollUntil('return window.ready;', 5000));
Run Code Online (Sandbox Code Playgroud)

不幸的是,它没有解释如何加载pollUntil助手以便在前面的例子中使用它...有没有人有一个使用pollUntil的完整工作示例?

谢谢你的帮助.

intern

6
推荐指数
1
解决办法
649
查看次数

如何从 JS 模块自动生成单元测试?

我继承了一个包含多个 JavaScript 文件的项目。他们每个人都有一堆功能;这些文件以 AMD 风格定义。

例如:

math.js

define([], function () {

  return {

    func1: function (a, b) { 
      return a + b;
    },

    func2: function (c, d) {
      return c + d;
    },

  };
});
Run Code Online (Sandbox Code Playgroud)

我想在tests文件夹中生成一个名为 ( math.js)的新文件,该文件将包含框架tdd样式的单元测试的样板代码intern

我使用了intern-generator一个 Yeoman 生成器,它可以搭建脚手架并生成一个具有指定名称和路径的测试文件,但是,这个生成器不会让我创建引用 JS 文件中的函数的单元测试。

所以,对于math.js源文件,我想创建一个测试文件(自动):

define(function (require) {
  var tdd = require('intern!tdd');
  var assert = require('intern/chai!assert');
  var math = require('src/app/math');

  tdd.suite('Suite name', function () {

    tdd.test1('Test foo', function () { …
Run Code Online (Sandbox Code Playgroud)

javascript testing unit-testing yeoman intern

6
推荐指数
0
解决办法
1691
查看次数