当前位置: 首页 > 网络应用技术

一篇文章了解Python Unittest测试方法的顺序

时间:2023-03-06 18:46:55 网络应用技术

  每个人都应该不熟悉Unittest。作为最常用的5 - 6年的博客作者,现在已经是pytest,鼻子慢慢。

  逐渐地,每个人的讨论内容从Unitest+HTMLTestrunner变为Pytest+Allure2。

  毕竟,我忍不住感觉到了,我无法跟上时代的潮流。

  情绪结束后,返回文本。尽管Untist逐渐放弃,但它仍然是一个非常全面的。

  我今天在小组中看到了番茄卷的国王的一些言论,这激起了我的记忆。

  我曾经知道,UNITSEST的执行顺序不是按顺序执行的,而是按照执行方式执行的。但是不幸的是,我已经推测解决了问题(将在后面提及)。

  让我们讨论UNITSEST类的测试方法的问题。

  研究源代码,以发现在类下载测试方法时,对本机加载程序进行排序,并且根据函数对测试方法列表进行排序。CMP_TO_KEY方法。

  我们知道,Unitest不需要我们指定相应的方法。简单地说,这是一种自动获取我们的方法,并同意将开始方法视为测试方法。

  检查self.sorttestmethodsusion(这是分类的一种方式)。

  您可以看到这种比较方法非常清楚,如果x < y那么返回-1,x = y则返回0,x > y返回1。

  实际上,您可能不知道可以比较什么python,并且必须在此处进行解释。LET以此为例:

  猜猜执行结果。显然,与A-Z的顺序比较字典顺序的比较。如果前缀相同但长度不同,则字典的长度又回来了。

  在理解字典顺序之后,不难知道可以简化地找到案例的过程:

  为了弄清楚为什么用例混乱,然后考虑相应的。由于修改源代码不合适,我们有两种实现目的的策略。

  例如,我有多种测试方法:

  根据词典命令,执行人员实际上是1 10 11 2 3的命令。

  我们可以手动修改测试方法的名称,这是我较早的处理方法。换句话说,安排了要先执行前面执行的案例字典:

  我们可以将数字作为位置拆卸,并且个人数量将构成10位数字,因此,如果您编写100个案例,我们需要构成2 0,例如0_0_1。Coursethere的情况太多了。

  如果遇到test_login,该怎么办,这不是结束数字的一种方法。

  实际上,可以写的是一样。Fanca写了一个装饰师来解决此类问题,每个人都可以参考它。

  计划1使用Fancai的装饰设备,这很好,但是该方法本身的名称可以更改。实际上,我们可以从他的分类方法开始,并按照我们写作案例的顺序,我们可以实现所需目的的目的。

  谈论思考:

  让我们看完整的代码。评论写得很好。

  执行它是错误的吗?怎么了?

  这是因为Pycharm具有默认的Untist Debugging方法,我们需要将其更改为普通方法以执行。

  尝试使用控制台执行:

  作者:米洛