场景:有一个Excel表,A列有1000条记录...我需要验证所有值是否相等。
挑战:如果我使用assert。fail()方法,当发生故障时,执行停止。
必填:但我想继续执行并最终给出结果。如果任何值不匹配,需要说测试用例失败并打印不匹配的值。
我会循环遍历Excel,将当前行的字符串testString
与0026 tedString
进行比较。任何时候它不匹配,请将testString
添加到不匹配
。一旦Excel工作表已完全测试,请查看mis匹配
是否包含任何内容。如果是这样,请打印mis匹配
内的所有值,然后使用JUnit断言
以失败测试。
String expectedString = "myTestString";
Set<String> mismatches = new HashSet<String>();
while (...) // loop through Excel rows
{
String testString = getValueFromExcel();
if (!testString.equals(expectedString))
{
mismatches.add(testString); // add any values that don't match to 'mismatches'
}
}
if (mismatches.size() > 0)
{
System.out.println(mismatches.size() + " mismatches were found:");
// dump the mismatches
for (String mismatch : mismatches)
{
System.out.println(" " + mismatch);
}
}
// now throw a JUnit assert that the test failed
Assert.assertEquals(mismatches.size(), 0, "Verify that no mismatches were found");
你可以这样做:
Map<Whatever, Integer> unequalValues = new HashMap<>();
... iterate your rows; and for each row do
unequalValues.put(valueFromRow, rowIndex);
最后,您只需检查unequalValures
是否包含多个条目。如果是这样,您可以打印所有条目;包括行索引/编号。然后,最后,您调用失败()
如果您只对具有不相等值这一事实感兴趣,而不对它们在哪个行感兴趣......集合而不是Map也可以。
继续将这些值添加到集合中。最后,如果集合有多个值(检查大小),则打印这些值。这意味着所有值都不相同。如果大小为1,则所有值都相同。
问题内容: 我正在通过Java与Eclipse和TestNG框架一起使用Selenium RC。我有以下代码片段: 第一个断言失败,执行被停止。但我想继续进一步的代码片段。 问题答案: Selenium IDE使用验证执行软断言,这意味着即使检查失败,测试仍将继续,并且可以在测试结束时或在发生硬断言时报告失败。 使用TestNG,可以通过使用自定义测试侦听器来拥有这些软断言。我已经在博客上记录了如
我已经使用testng并行测试用例执行设置,但我只需要执行一次设置方法。 BeforeClass和BeforeMethod也会针对单个线程执行。但我需要在所有线程之前执行一次方法。 如何通过TestNG设置实现这一点? 测试NG。xml
我正在使用git、codebuild和elastic beanstalk构建一个CI/CD管道。 在代码构建执行期间,当由于测试用例的语法错误导致构建失败时,我看到代码构建进展到下一阶段,并最终继续生成工件。 我的理解是,如果构建失败,执行应该停止。这是正确的行为吗? 请参阅下面的buildspec。
问题内容: 我正在尝试引发异常(不使用try catch块),并且程序在引发异常后立即完成。有没有一种方法可以在我引发异常之后继续执行程序?我抛出了在另一个类中定义的InvalidEmployeeTypeException,但是我希望程序在抛出该异常后继续执行。 问题答案: 试试这个:
我制作了一个程序,要求用户输入5位数字,然后程序将查找这些数字的总和。我想知道我怎样才能使程序在计算一次之后一遍又一遍地要求一个数字。我希望用户再试一次,直到他自己想退出。
问题内容: 我正在写一个如下的shell脚本: 现在,我想要实现的是列出$ ACTIONS_DIR中的每个文件以执行该文件。$ ACTIONS_DIR下的每个文件都是另一个Shell脚本。 现在,这里的问题在于,使用exec之后,脚本将停止并且不会转到下一个文件。任何想法为什么会这样? 问题答案: 替换shell进程。如果只想将该命令作为子进程调用,则将其删除。