我有这个Java代码:
@app.route('/control/edituser/<int:id>',method=['post','get'])
def edit(id):
qry=sqlsession.query(Enduser).filter(Enduser.id==id).first()
form = UserForm(request.form, **qry)
if form.validate_on_submit():
form.populate_obj(qry)
sqlsession.update(qry)
sqlsession.commit()
return redirect(url_for('page_newuser'))
return render_template('newuser.html', form=form)
和TestNG单元测试此方法:
public class Calc {
public int quotient(int a, int b){
return a/b;
}
}
在我的工作电脑上,我成功了
java.lang.ArithmeticException:/ by zero
消息,正如所料。
但是当我的同事在家用电脑上运行此测试时,提到的例外不是投掷和测试通过。
这种魔法怎么会发生?
P.S。 环境 操作系统:Windows 10 TestNG版本:6.13.1 Java版本:8(不知道确切的构建版本)
P.P.S。 删除目标文件夹和重建项目是非常有用的解决方案。看起来像IDE兑换旧项目源,并且在代码更改后没有刷新它们。
答案 0 :(得分:1)
在过去,我经历过像你这样的事情。因为不同的JDK编译环境和/或JRE运行时环境。并且需要检查不同版本的TestNG。
通过添加几行代码来检查以打印Java属性。
Properties p = System.getProperties();
Enumeration keys = p.keys();
while (keys.hasMoreElements()) {
String key = (String)keys.nextElement();
String value = (String)p.get(key);
System.out.println(key + ": " + value);
}
然后比较