Java TestNG try/catch工作不正常
我正在开发一个以前有人构建的测试自动化框架。该框架从excel文件读取测试数据,并使用SeleniumWebDriver控制浏览器和执行测试 我通过添加一个从CSV文件读取数据的TestNG类向这个框架添加功能。当前框架中的某些函数使用try/catch。因此,当我从TestNG类调用这些函数时,TestNG总是说测试通过了,不管发生什么 例如,这来自于当前的框架Java TestNG try/catch工作不正常,java,selenium,try-catch,testng,Java,Selenium,Try Catch,Testng,我正在开发一个以前有人构建的测试自动化框架。该框架从excel文件读取测试数据,并使用SeleniumWebDriver控制浏览器和执行测试 我通过添加一个从CSV文件读取数据的TestNG类向这个框架添加功能。当前框架中的某些函数使用try/catch。因此,当我从TestNG类调用这些函数时,TestNG总是说测试通过了,不管发生什么 例如,这来自于当前的框架 if (enterValueInBox.length() >= 1) { try {
if (enterValueInBox.length() >= 1) {
try {
browserActions.typeValueInTextBox(myDriver, enterValueInBox);
} catch (Exception e) {
System.out.println("enterValueInBox failed");
}
}
此if语句位于函数内部。不管这个函数是否工作,它都会传入TestNG。例如,即使Selenium找不到元素
我怎样才能解决这个问题?我必须改变试一试/接球吗
编辑:来自同一函数的另一个示例。这个函数基本上由几个if语句组成,就像我在这里展示的两个一样。它们都有相同的签名,因此一个包含try/catch的if语句。同样值得一提的是,我调用的函数/类不是TestNG类。所以我构建了一个TestNG类,并调用了一个非TestNG类->方法
if (backSpaceInTextBox.length() > 1) {
try {
wa.handleSeleneseCommand(myDriver, Properties.TIME_TO_WAIT,
"niet gelukt");
browserActions.doBackSpaceInTextBox(myDriver,
backSpaceInTextBox);
} catch (Exception e) {
System.out.println("Could not do backspace");
}
}
试试这个:
if (enterValueInBox.length() >= 1)
{
try
{
browserActions.typeValueInTextBox(myDriver, enterValueInBox);
}
catch (Exception e)
{
Assert.fail("EnterValueInBox failed", e);
}
}
当抛出异常时,测试将失败。请尝试以下操作:
if (enterValueInBox.length() >= 1)
{
try
{
browserActions.typeValueInTextBox(myDriver, enterValueInBox);
}
catch (Exception e)
{
Assert.fail("EnterValueInBox failed", e);
}
}
当抛出异常时,您的测试将失败。您的测试将通过,因为测试函数已完成 没有任何断言失败 毫无例外地从测试方法中抛出 在您的情况下,您应该执行以下操作之一: 根本不要捕捉异常。声明抛出这些异常的测试方法 捕获异常并失败测试Assert.fail
您的测试正在通过,因为测试函数已完成 没有任何断言失败 毫无例外地从测试方法中抛出 在您的情况下,您应该执行以下操作之一: 根本不要捕捉异常。声明抛出这些异常的测试方法 捕获异常并失败测试Assert.fail
你能从你的测试中添加更多的代码吗?你的catch子句实际上只是吞下了这个异常。它将消息打印到控制台并继续正常执行。您需要以某种方式处理异常,或者在方法签名中声明错误thrown@ToYonos我试着小心代码,因为它是内部的。但是你想看到什么样的代码呢?请参见上面的编辑^是否可以从测试中添加更多代码?您的catch子句实际上正在吞咽异常。它将消息打印到控制台并继续正常执行。您需要以某种方式处理异常,或者在方法签名中声明错误thrown@ToYonos我试着小心代码,因为它是内部的。但是你想看到什么样的代码呢?请参见上面的编辑^