这个问题的答案并没有回答我的问题.
我想使用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) 我已经开始使用实习库在js中编写功能测试,我意识到我无法理解这种语法:
var assert = require('intern/chai!assert');
var registerSuite = require('intern!object');
Run Code Online (Sandbox Code Playgroud)
方法!论证中字符的用途是什么require()?
我使用带有Intern的Google Chrome来运行自动化测试,我想知道是否有办法从CLI启动Chrome模拟模式或使用特定标记测试移动呈现.如果没有,你知道一个好的解决方法吗?
我可以直接使用Android模拟器(来自Android SDK)与Selenium Webdriver apk或移动Chrome,但测试大部分时间都在崩溃,模拟器没有响应,我必须重新启动它.此外,我需要测试最大可能范围,不仅限于Android设备.桌面上的Chrome更加稳定,即使测试失败,Chrome也会响应并可以由Intern自动关闭.
我尝试了一个使用"--enable-touch-events"标志和自定义userAgent的解决方法,但它产生了奇怪的行为.也许其他一些旗帜会对我有帮助吗?
提前感谢您的回答.
我想尝试在本地计算机上的单个浏览器上运行Intern功能测试(即使用webdriver). 医生说我需要一个"Selenium 2服务器".
如何正确设置服务器?我是否需要从实习生单独下载并安装它?(如果是这样,怎么样?)在调用"node runner.js"之前,我是否需要将其作为一个单独的进程启动?(如果是这样,怎么样?)
使用以下运行器运行功能测试时,我一直收到错误:-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)
有没有人遇到过这样的问题?我该如何解决?建议请
我正在尝试使用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运行一系列功能测试,并遵循他们与Chromedriver连接到本地Selenium的建议.
在本地,一切都运作良好,但在CircleCI我得到:
Error: [POST http://localhost:4444/wd/hub/session] connect ECONNREFUSED
这是否与在CircleCI上如何设置本机Selenium有关?我是否必须在后台手动运行(如此处所述),或者它是否已经默认运行,我只是没有正确连接?
我有一个项目,其中实习单元测试应该在与测试中的源代码不同的目录树中.有点像这样:
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) 实习生2文档提供了以下在加载测试页面后等待条件为真的示例:
this.remote
.get(require.toUrl('./SomeTest.html'))
.then(pollUntil('return window.ready;', 5000));
Run Code Online (Sandbox Code Playgroud)
不幸的是,它没有解释如何加载pollUntil助手以便在前面的例子中使用它...有没有人有一个使用pollUntil的完整工作示例?
谢谢你的帮助.
我继承了一个包含多个 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) intern ×10
javascript ×3
amd ×2
unit-testing ×2
circleci ×1
dojo ×1
leadfoot ×1
node-modules ×1
node.js ×1
selenium ×1
testing ×1
webdriver ×1
yeoman ×1