我来自QUnit背景(我已经很高兴使用它很多年了)。在我目前的项目中,YUI是一个选择的框架,所以使用YUI.Test进行单元测试是合理的。
我使用的是3.4.0版。
不幸的是,我遇到了一些意想不到的“功能”。根据留档http://yuilibrary.com/yui/docs/test/#assertions:
“注意:即使此示例显示多个断言失败,一旦一个断言失败,测试就会停止,从而导致所有其他断言被跳过。
我习惯在有意义的测试名称下对断言进行分组。如果我有5个断言,其中2个失败了,我想在测试结果中看到这两个断言。如果在一次测试中有许多失败断言,我不能一次修复它们。我必须“修复”第一个restest,找到另一个...“修复”并重新测试...诸如此类。
当我在本地环境中时,这没什么大不了的。在持续集成环境中,问题开始变得严重。我不想为每个失败的断言运行构建(在竹子/Jenkins上)。如果我在一个测试用例中有多个测试(这很可能...)这是一场噩梦,我的团队会在一天后死去...
目前我正在使用“解决方法”...每个测试只有一个断言:(这意味着需要大量的测试...
有没有其他方法可以解决这个问题?
任何帮助赞赏!谢谢!
您想要做的(以及我们在YUI中自己的测试中所做的)是将不同的测试分组到一个<code>Y.Test.Case<code>下。下面是一个示例,取自Y.ArraySort
中的测试:
var ArrayAssert = Y.ArrayAssert,
suite = new Y.Test.Suite('ArraySort');
suite.add(new Y.Test.Case({
name: 'compare()',
'should compare numbers': function () {
var array = [2,1,3,5,4];
array.sort(Y.ArraySort.compare);
ArrayAssert.itemsAreSame([1,2,3,4,5], array, "Expected sorted numbers.");
},
'should compare strings': function () {
var array = ["caa", "baa", "bba", "aba", "cba", "aaa", "abc"];
array.sort(Y.ArraySort.compare);
ArrayAssert.itemsAreSame(["aaa","aba","abc","baa","bba","caa","cba"], array, "Expected sorted strings.");
},
'should compare mixed alpha and numeric strings': function() {
var array = ["attic", "Aardvark", "1", "0", "Zoo", "zebra"];
array.sort(Y.ArraySort.compare);
ArrayAssert.itemsAreSame(["0", "1", "Aardvark","attic","zebra","Zoo"], array, "Expected sorted mixed strings.");
}
}));
如果一个断言失败,Y.Test.Case
中的每个测试都应该失败,您应该将相关测试组合在一个Y.Test.Case
名称下。单个测试的名称应该是一个简单的、人类可读的描述,描述您正在测试的特定功能,并且应该仅针对该功能进行断言。
我已经在Netbeans上通过JS测试驱动程序设置了JavaScript单元测试。然而,与该教程中的结果不同,断言失败后不会执行更多测试。我怎样才能改变这种行为? 例如,给定此测试文件: 文件: 进度条显示50%,(2次测试),应该是33%。 文件: 我可以通过命令行运行所有测试。(在Windows PowerShell上)。按如下方式运行,失败后测试不会停止运行: java-jar$env: J
当我尝试执行一个新的单元测试用例时,它会显示以下错误。 注意:我没有特权设置路径,因为我已经将chrome web驱动程序放在D驱动器中。 测试在14:56开始。。。C:\Users\xxx.xxxx\PyCharm项目\Automation\venv\Scripts\python.exe“C:\Users\xx.xxx\AppData\Local\JetBrains\PyCharm社区版2019
有一个excelsheet,其中所有URL(16)都列在一列中。现在,一旦页面加载,需要验证页面标题是否与excel中已存储的预期标题匹配。我可以使用for循环执行它。如果全部通过,它将运行所有URL,但如果失败,它将停止运行。我需要完整地运行它,并给出一份通过和失败的报告。我编写了以下代码。 请在这方面帮助我。
我用的是3.4.0版 我对YUI有一个奇怪的问题。测试断言。下面是一个示例: 当断言在事件的回调中时,它永远不会失败:(文档中没有提到这种情况... 也许我做错了什么,但是缺少文档很难确定... 更新 没有等待/恢复的示例:http://jsfiddle.net/op1ekun/Fgra6/2/ 和具有等待/恢复 http://jsfiddle.net/op1ekun/Fgra6/5/ 更新2 已
如果我运行特定的场景,它都是绿色的。如果我只运行cucumber套件(又名。耙cucumber),它都是绿色的。但是,如果我运行完整的测试套件,(又名。耙),单个场景失败。 我假设这与数据库的状态和我的配置有关。我编写了cucumber场景以假设最初为空的数据库,并且我正在为各个场景构建小型数据集。 我正在使用DatabaseCleaner和截断策略,我的理解是,这将清除数据库。我弄错了吗?单元测
我这里少了点什么。我做错什么了吗?