Java TestNG测试在Linux上通过,在windows上失败
由于某些原因,下面的测试在Windows上失败,但在Linux上通过。测试的目的是在被测试的代码中生成异常。该异常基本上是一个文件异常。方法是使文件不可读以生成异常。看起来setReadable(false)对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
@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,并且底层文件系统未实现读取权限,则操作将失败。