Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java TestNG测试在Linux上通过,在windows上失败_Java_Testng - Fatal编程技术网

Java TestNG测试在Linux上通过,在windows上失败

Java TestNG测试在Linux上通过,在windows上失败,java,testng,Java,Testng,由于某些原因,下面的测试在Windows上失败,但在Linux上通过。测试的目的是在被测试的代码中生成异常。该异常基本上是一个文件异常。方法是使文件不可读以生成异常。看起来setReadable(false)对Windows没有影响 @Test(dependsOnGroups = "expectedFlow",expectedExceptions = ParserException.class) @Parameters("unreadableFile") public void mineD

由于某些原因,下面的测试在Windows上失败,但在Linux上通过。测试的目的是在被测试的代码中生成异常。该异常基本上是一个文件异常。方法是使文件不可读以生成异常。看起来setReadable(false)对Windows没有影响

 @Test(dependsOnGroups = "expectedFlow",expectedExceptions = ParserException.class)
 @Parameters("unreadableFile")
 public void mineDataParserExceptionTest(String unreadableFile) throws ParserException{
  AbstractParser parser;
  File f = new File(unreadableFile);
  f.setReadable(false);
  parser = ParserFactory.getParser(ParserFactory.TYPES.SAR);
  parser.mine(fileHelper, xml);
}

检查返回值是否成功;然而,似乎
f.setReadable(false,false)
可能是一个更好的主意,因为否则它只应该更改文件所有者的读取权限。

f.setReadable(false)的结果是什么;?它会抛出什么异常?不可读取的值是多少?(linux和windows上的路径格式不同)f.setReadable(false)不会引发异常。它要么返回布尔值true/false。但是,它确实会影响parser.mine(fileHelper,xml)的操作,这将在两行之后发生。解析器将尝试打开已设置为不可读的文件,然后将生成异常。不可读文件的路径是unix路径:src/test/resources/file。。。同一套件中的其他测试使用的是unix路径,但没有抱怨。正如您所说,setReadable()返回一个布尔值。那么,返回值是多少。javadoc说:当且仅当操作成功时才返回true。如果用户无权更改此抽象路径名的访问权限,则操作将失败。如果readable为false,并且底层文件系统未实现读取权限,则操作将失败。