接口测试 uniitest 测试用例执行顺序错误

长歌丶 · 2018年01月03日 · 最后由 丧尸没有牙齿 回复于 2018年06月08日 · 2436 次阅读





)

如图所示,我们知道 uniitest 的 testsuite 是按照 ASCII 编码检索并执行的,我的 case 都加了 a00x 的标志,确保他的执行顺序,但是不知道为什么现在的执行顺序是 1 67 2345,67 跑到前面去了,求解。

共收到 10 条回复 时间 点赞

在一个测试类下的 testcase 是按照 ASCII 的顺序执行,不同文件下还真没研究过。。

疯的蜗牛 回复

我也有点懵逼了,以前我都是这样写的,单用例单文件,文件与里面 case 的命名保持一致,结果给我来这么一套,懵逼了😂 😂

顺序有强要求?

chen 回复

是的,最好按照我设定的顺序执行

通过 unittest.testsuite().addTests() 方法的,可以让用例按照指定的顺序执行

长歌丶 回复

放到测试类呗,不过还是要考虑下以后并行执行 case 的情况。

测试用例的名字是按 ASCII 顺序来执行的。所以可以这样:
testunit.addTest(Backtest("test_a_shopping_Add_address"))

testunit.addTest(Backtest("test_b_shopping_process"))
以此类推。

Weilai918 回复

就我的用例其实已经按照顺序命名了如下检索出来的,但是我找不到为什么 a006,a007 在 a002 前面的道理。。。。

<unittest.suite.TestSuite tests=[
<account.test_a001_accountVerify.TestAccountVerify testMethod=test_a001_accountVerify>, <account.test_a006_appLogin.TestAppLogin testMethod=test_a006_appLogin>,
<account.test_a007_getUserSurvey.TestGetUserSurvey testMethod=test_a007_getUserSurvey>, <account.test_a002_getLatestVerify.TestGetLatestVerify testMethod=test_a002_getLatestVerify>]>

有老哥建议我把文件名中的第一个下划线去掉,执行顺序正常了,这是什么道理

unnitest 时按照一步一步的检索名字来的,你再检查一下呢

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册