升级后,Mocha甚至无法运行这里的简单测试代码
const assert = require('assert');
it('should complete this test', function (done) {
return new Promise(function (resolve) {
assert.ok(true);
resolve();
})
.then(done);
});
Run Code Online (Sandbox Code Playgroud)
我从这里拿了这个代码
我明白它现在抛出异常 Error: Resolution method is overspecified. Specify a callback * or * return a Promise; not both.
但是如何让它发挥作用?我不明白.我有
node -v 6.9.4
mocha -v 3.2.0
Run Code Online (Sandbox Code Playgroud)
如何运行此代码现在采用新的正确格式?
我通过RequireJS加载AngularJS.大多数时候没有问题,但有一段时间我得到错误:
未捕获错误:[jqLite:nosel] jqLite不支持通过选择器查找元素!
我知道一切都在加载,所以问题不在于RequireJS没有找到文件.
这是我的RequireJS配置:
require.config({
baseUrl: 'lib/',
paths: {
jquery: 'external/jquery-2.1.1',
angular: 'external/angular',
},
shim: {
angular: {
exports: "angular"
},
},
});
Run Code Online (Sandbox Code Playgroud)
以下是我如何加载RequireJS并启动加载:
<script type="text/javascript" src="lib/requirejs/require.js"></script>
<script type="text/javascript" src="requirejs-config.js"></script>
<script>
require(["start"]);
</script>
Run Code Online (Sandbox Code Playgroud)
我正在使用AngularJS 1.3.0和RequireJS 2.1.15.
完成React教程后,这是我的index.html文件:
<!-- index.html -->
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>Hello React</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.13.3/react.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.13.3/JSXTransformer.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/marked/0.3.2/marked.min.js"></script>
</head>
<body>
<div id="content"></div>
<script src="lib/main.js"></script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
这是我的src/main.jsx文件:
var CommentBox = React.createClass({
getInitialState: function() {
return {data: []};
},
loadCommentsFromServer: function() {
$.ajax({
url: this.props.url,
dataType: 'json',
cache: false,
success: function(data) {
this.setState({data: data});
}.bind(this),
error: function(xhr, status, err) {
console.error(this.props.url, status, err.toString());
}.bind(this)
});
},
handleCommentSubmit: function(comment) {
var comments = this.state.data;
var newComments = …Run Code Online (Sandbox Code Playgroud) 哪个是实现我自己的最佳方式django.contrib.admin.sites.AdminSite?
其实我得到一个问题登记INSTALLED_APPS在django.contrib.admin.autodiscover.如果我使用自定义AdminSite类urls.py,则管理页面上不会显示任何应用程序.
我用一个小黑客修复了这个问题.我写了这堂课:
from django.contrib.admin.sites import site as default_site
class AdminSiteRegistryFix( object ):
'''
This fix links the '_registry' property to the orginal AdminSites
'_registry' property. This is necessary, because of the character of
the admins 'autodiscover' function. Otherwise the admin site will say,
that you havn't permission to edit anything.
'''
def _registry_getter(self):
return default_site._registry
def _registry_setter(self,value):
default_site._registry = value
_registry = property(_registry_getter, _registry_setter)
Run Code Online (Sandbox Code Playgroud)
并实现我的自定义AdminSite,如下所示:
from wltrweb.hacks.django.admin import AdminSiteRegistryFix
from django.contrib.admin …Run Code Online (Sandbox Code Playgroud) 我正在尝试运行一些需要存根的测试jQuery.ajax.我正在使用SinonJS来做到这一点,它曾经与旧版本的jQuery(1.x)一起使用
var $ = require('jquery');
var sinon = require("sinon");
sinon.stub($, "ajax"); // this worked because $.ajax is defined
Run Code Online (Sandbox Code Playgroud)
但是,在升级到jQuery 2.x之后,当我需要从我的模块运行jquery时,我不得不包含一个窗口环境.我jsdom用来完成这个:
var document = require('jsdom').jsdom(),
window = document.parentWindow,
$ = require('jquery')(window);
Run Code Online (Sandbox Code Playgroud)
问题 $.ajax现在未定义.我怀疑因为现在它返回绑定到特定元素但不完全确定的jQuery对象.有谁知道为什么以及如何解决这个问题?
编辑我的朋友谁没有在SO上指出,如果我们附加window到全局,我们可以得到普通的jquery对象而不是工厂
global.window = require('jsdom').jsdom().parentWindow;
var $ = require('jquery'); // this works as $.ajax is now defined
Run Code Online (Sandbox Code Playgroud)
我不喜欢将窗口附加到全局,因为它会影响一些类型检查窗口的插件.不是阻挡者,但我很想知道是否还有其他方法可以解决这个问题.
我开始向Node.js服务器应用程序添加测试,因为我们正在慢慢部署到生产环境中.我有一个API,有许多可能的测试请求.
我的问题是:你如何构建你的测试,所以它不会成为你很快迷路的大文件?
我为一个 API路由编写了测试(我有许多其他API路由要测试),这就是它的外观(在Sublime文件概述中):

而这项测试甚至还没有涵盖所有案例.
我使用mocha,连同should和expect进行验证,并superagent为API调用.你将如何构建这些测试,以便它不会在一个可怕的大文件中进化?
我的应用程序中的组件如果被分配了直接字符串值("someImage.png"),它可以正常工作,但如果我尝试通过将图像名称存储在局部变量中来分配它,则会给出此异常"require()必须具有单个字符串文字参数"此行正常工作
<ImageBackground source={require("./Resources/bg/imageone.png")} resizeMode='cover' style={customStyles.backdrop}>
Run Code Online (Sandbox Code Playgroud)
在这种情况下会出现问题
let imageName = "./Resources/bg/imageone.png";
<ImageBackground id="123" source={require(imageName)} resizeMode='cover' style={customStyles.backdrop}>
Run Code Online (Sandbox Code Playgroud)
我的两个场景 -
1)首先
@driver.manage.timeouts.implicit_wait = 30
@wait = Selenium::WebDriver::Wait.new(:timeout => 45) # Time greater than implicit
@wait.until {@driver.find_element(:tag_name => "body").text.include?("hey")}
Run Code Online (Sandbox Code Playgroud)
这给了驱动程序45秒搜索文本(这是预期的)
2)第二
@driver.manage.timeouts.implicit_wait = 30
@wait = Selenium::WebDriver::Wait.new(:timeout => 5) # Time less than implicit
@wait.until {@driver.find_element(:tag_name => "body").text.include?("hey")}
Run Code Online (Sandbox Code Playgroud)
这现在为驱动程序提供了30秒的搜索时间(不是预期的)
有没有办法让硒等待explicit等待时间而不是两者中的较大者?
注意 - 不是声明隐式等待时间不是一个选项,因为每次驱动程序无法找到某些内容时我都无法让selenium挂起.
使用Selenium版本30,windows,ff
我正在使用这个插件来获取单词并使它们在屏幕上形成脉动:
首先它们出现并成长,然后它们消失,改变位置并再次出现
工作插件:
+ function($) {
var Pulsate = function(element) {
var self = this;
self.element = element;
self.max = 70;
self.min = 0;
self.speed = 500;
self.first = true;
self.currentPlace;
self.possiblePlaces = [
{
id: 0,
top: 150,
left: 150,
},
{
id: 1,
top: 250,
left: 250,
},
{
id: 2,
top: 350,
left: 350,
},
{
id: 3,
top: 250,
left: 750,
},
{
id: 4,
top: 450,
left: 950,
}
];
};
Pulsate.prototype.defineRandomPlace = function() { …Run Code Online (Sandbox Code Playgroud)我正在尝试编写一个只匹配整个单词的Django查询.基于这里的答案,我尝试过类似的东西:
result = Model.objects.filter(text__iregex='\bsomeWord\b')
Run Code Online (Sandbox Code Playgroud)
但这并没有返回预期的结果.我也试过了
result = Model.objects.filter(text__iregex=r'\bsomeWord\b')
Run Code Online (Sandbox Code Playgroud)
无济于事.我的最终目标是能够传入一个字符串变量,例如:
result = Model.objects.filter(text__iregex=r'\b'+stringVariable+r'\b')
Run Code Online (Sandbox Code Playgroud)
要么
result = Model.objects.filter(text__iregex=r'\b %s \b'%stringVariable)
Run Code Online (Sandbox Code Playgroud)
但是现在我甚至无法使用原始字符串.我正在使用PostgreSQL.
javascript ×5
node.js ×3
django ×2
jquery ×2
mocha.js ×2
angularjs ×1
django-admin ×1
html ×1
image ×1
postgresql ×1
python ×1
react-native ×1
reactjs ×1
regex ×1
requirejs ×1
ruby ×1
selenium ×1
testing ×1
webdriver ×1