我正在使用Python假设来为数据库编写随机测试。 在将给定值插入表的1-2个循环后,我得到了超出范围的列表索引,并使用@seed进行了复制。 没有什么可以失败的,我还没有断言。 我该如何调试?
谢谢
run_statement("create table t (x int)")
@given(st.integers(1,10), st.integers(1,10))
def insert_select(x):
assume(x)
run_statement("insert into t values ({})".format(x))
select_results = run_statement_with_results("select * from t")
print select_results
insert_select()
结果:
You can add @seed(257907719204305935240373390472712621009) to this test to reproduce this failure.
timeout
error: list index out of range
答案 0 :(得分:0)
不幸的是,该测试从根本上被打破了:
@given
提供两个参数,但是test函数仅接受一个。assume(x)
的调用是毫无意义的,因为x
永远不会是虚假的这些问题一旦解决,问题就可能消失。