我正在用Selenium和JAVA编写测试,有时当我收到错误时我使用summary.my.factor<-function(object,...) {
x<-prop.table(table(object))
setNames(sprintf("%1.2f%%",100*x),names(x))
}
my.summary<-function(object,...) {
f<-function(x) if(inherits(x,"factor")) structure(x,class=c("my.factor",class(x))) else x
summary(as.data.frame(lapply(object,f)),...)
}
my.summary(chickwts)
来关闭我的测试或在其他情况下我的测试程序被迫完成,但我需要运行一个函数在任何情况下关闭程序之前,所以在Java中是否有任何析构函数,如果我在那里调用我的函数,如果有任何东西迫使我的程序完成它将被调用(保证)?
答案 0 :(得分:0)
您正在寻找的是out
,或使用关闭钩子(请参阅Useful example of a shutdown hook in Java?),但您真的不应该这样做......
请勿使用finalizer
。抛出一个异常并让它回滚你的调用堆栈,允许调用堆栈上的每个方法处理System.exit(1)
块中的资源清理。
如果您需要控制退出代码,您可以随时在main方法中捕获异常并在那里调用try-finally
。
答案 1 :(得分:0)
如果您正在使用JUnit来推动测试,那么您可能有兴趣使用@Before
和@After
来注释设置和拆卸方法。正如安德烈亚斯所说,你应该抛出异常,然后JUnit将处理调用拆解方法,即使出现错误。