Resharper 的 qunit 测试运行程序不一致
Inconsistency in Resharper's qunit test runner
我想使用 Resharper (8.0.2) 集成的 qunit 测试运行器,但是 运行 直接在浏览器中测试与 运行 在浏览器中使用R# 亚军:
正如 here 指出的那样,未添加 fixture 元素,UI 相关测试需要它。如答案中所述,可以通过在模块设置+拆卸方法中手动添加元素来解决。
这让我进入下一期:
Resharper 只识别 deperecated setup
和 teardown
,而不是它们的替代品(beforeEach
和 afterEach
):
DEPRECATION Note: beforeEach and afterEach were previously named setup and teardown, which still exist and will be removed in QUnit 2.0.0.
module("Tests for DOM manipulation", {
beforeEach: function () { // never called in the R# runner
$("body").append('<div id="qunit-fixture" />');
}
});
test('finding qunit-fixture element', function(){
var elementCount = $('#qunit-fixture').length;
ok(elementCount, 1);
});
最后,test()
回调函数不 return 一个 assert
对象,即:
test('foo', function(assert){
var done = asssert.async(); // assert is undefined in R# qunit runner
setTimeout(function (){
ok(1 === 1);
done();
}, 500);
});
有没有办法让 R# 的行为更像“原生 qunit”测试实现?
我不确定这是否正是您希望它工作的方式,但我想要 运行 比与 R# 捆绑在一起的版本更新的 QUnit 版本。
我拥有的最简单的解决方案是将 QUnit-1.17.1 包含到我的项目中,并在我的 JavaScript 测试文件的顶部包含:
/// <reference path="../lib/qunit-1.17.1.js" />
这将在脚本的其余部分之前包含该文件,因此它将实质上覆盖 R# 提供的现有 QUnit 定义。
可能存在碰撞问题,但我能够让它工作:
/// <reference path="../lib/qunit-1.17.1.js" />
QUnit.test('this is my test', function(assert) {
assert.equal(1, 1);
});
测试通过常规 R# 测试成功 运行ner。
澄清一下,路径 ../lib/qunit-1.17.1.js 是相对于 test.js 文件的文件位置。
我想使用 Resharper (8.0.2) 集成的 qunit 测试运行器,但是 运行 直接在浏览器中测试与 运行 在浏览器中使用R# 亚军:
正如 here 指出的那样,未添加 fixture 元素,UI 相关测试需要它。如答案中所述,可以通过在模块设置+拆卸方法中手动添加元素来解决。
这让我进入下一期:
Resharper 只识别 deperecated
setup
和teardown
,而不是它们的替代品(beforeEach
和afterEach
):
DEPRECATION Note: beforeEach and afterEach were previously named setup and teardown, which still exist and will be removed in QUnit 2.0.0.
module("Tests for DOM manipulation", {
beforeEach: function () { // never called in the R# runner
$("body").append('<div id="qunit-fixture" />');
}
});
test('finding qunit-fixture element', function(){
var elementCount = $('#qunit-fixture').length;
ok(elementCount, 1);
});
最后,test()
回调函数不 return 一个 assert
对象,即:
test('foo', function(assert){
var done = asssert.async(); // assert is undefined in R# qunit runner
setTimeout(function (){
ok(1 === 1);
done();
}, 500);
});
有没有办法让 R# 的行为更像“原生 qunit”测试实现?
我不确定这是否正是您希望它工作的方式,但我想要 运行 比与 R# 捆绑在一起的版本更新的 QUnit 版本。
我拥有的最简单的解决方案是将 QUnit-1.17.1 包含到我的项目中,并在我的 JavaScript 测试文件的顶部包含:
/// <reference path="../lib/qunit-1.17.1.js" />
这将在脚本的其余部分之前包含该文件,因此它将实质上覆盖 R# 提供的现有 QUnit 定义。
可能存在碰撞问题,但我能够让它工作:
/// <reference path="../lib/qunit-1.17.1.js" />
QUnit.test('this is my test', function(assert) {
assert.equal(1, 1);
});
测试通过常规 R# 测试成功 运行ner。
澄清一下,路径 ../lib/qunit-1.17.1.js 是相对于 test.js 文件的文件位置。