1. # odoo 14 python 单元测试步骤
  2. # 一.在模块根目录创建tests目录
  3. # 二.在tests目录下创建__init__.py文件
  4. # 三.继承TransactionCase(SingleTransactionCase、SavepointCase)类
  5. # 四.实现setUp(self, *args, **kwargs)方法
  6. # 五.以test_前缀为方法名,就是你的测试用例.
  7. # 在测试用例中调用self.assertEqual方法来断言你的测试用例是否成功执行
  8. # 六.TransactionCase、SingleTransactionCase、SavepointCase继承这三个不同的类,调用测试用例的情况都不一样
  9. # TransactionCase:
  10. # 1.每一个测试用例是在单独的事务中运行的。
  11. # 2.一旦测试用例方法运行成功,事务将自动回滚。
  12. # 3.setUp方法在每次自动调用我们测试用例前都会调用一次,也就是有多少个测试用例就调用多少次setUp。
  13. # SingleTransactionCase:
  14. # 1.所有测试用例都在同一个事务中执行。
  15. # 2.因此从一个测试用例中产生的数据可以在另一个测试用例中使用。
  16. # 3.事务从第一个测试用例开始,到最后一个测试用例结束时回滚。
  17. # SavepointCase:
  18. # 1.测试方法运行在回滚的保存点中,而不是将所有的测试用例都放在一个事务中。
  19. # 2.通过只生成一次测试数据来提高它们的速度。
  20. # 3.这里,需要使用setUpClass()方法来生成初始化测试数据。
  21. # 七.对测试类别进行标记.
  22. # 1.标记可以决定执行测试用例是在安装模块前还是在安装模块后执行。
  23. # 2.或者你还可以自定义标签。
  24. # 3.运行的时候你可以指定标记执行测试用例
  25. # 4.标准标记有:
  26. # standard(默认就有):默认会指定执行该标记的测试用例
  27. # at_install(默认就有):安装模块后立马执行测试用例
  28. # post_install:在所有模块安装完成后再执行测试用例
  29. # 5.删除默认标记:在标记前面加-减号就代表删除该默认标记
  30. # 八.运行测试用例:./odoo‐bin ‐c server.conf ‐i my_library ‐‐test‐tags=my_library
  31.  
  32. # 例子:
  33. from odoo.tests.common import TransactionCase, tagged
  34.  
  35. @tagged('-at_install', 'post_install')
  36. class TestBookState(TransactionCase):
  37.  
  38. def setUp(self, *args, **kwargs):
  39. super(TestBookState, self).setUp(*args, **kwargs)
  40. self.test_book = self.env['library.book'].create({'name': 'Book 1'})
  41.  
  42. def test_button_availabel(self):
  43. self.test_book.make_available()
  44. self.assertEqual(self.test_book.state, 'available', 'Book state should be changed to available')
  45.  
  46. def test_button_lost(self):
  47. self.test_book.make_lost()
  48. self.assertEqual(self.test_book.state, 'lost', 'Book state should be changed to lost')

odoo 14 python 单元测试步骤的更多相关文章

  1. [译]PyUnit—Python单元测试框架(1)

    1. 原文及参考资料 原文链接:http://docs.python.org/2/library/unittest.html# 参考文档: http://pyunit.sourceforge.net/ ...

  2. Python单元测试PyUnit框架轻度整改

    原理 参考:单元测试原理 背景 年后有段时间没写代码了,所以趁着周末找了个python单元测试玩下,测试自己的Android应用.发现PyUnit虽然在单个脚本文件中添加多个测试用例,比如官网提供的方 ...

  3. python单元测试框架 pyunit

    概况 系统要求 使用PyUnit构建自己的测试 安装 测试用例介绍 创建一个简单测试用例 复用设置代码:创建固件 包含多个测试方法的测试用例类 将测试用例聚合成测试套件 嵌套测试用例 测试代码的放置位 ...

  4. 【odoo14】odoo 14 Development Cookbook【目录篇】

    网上已经有大佬翻译过odoo12并且在翻译odoo14了.各位着急的可以自行搜索下... 这本书是为了让自己从odoo12转odoo14学习.也是为了锻炼下自己... odoo 14 Developm ...

  5. Python单元测试框架unittest之深入学习

    前言 前几篇文章该要地介绍了python单元测试框架unittest的使用,本篇文章系统介绍unittest框架. 一.unittest核心工作原理 unittest中最核心的四个概念是:test c ...

  6. python单元测试框架笔记

    目录 单元测试概述 什么是单元测试 单元测试什么进行? 单元测试由谁负责? 单元测试需要注意 单元测试覆盖类型 python 单元测试框架 unittest pytest 测试框架 单元测试概述 什么 ...

  7. The Hacker's Guide To Python 单元测试

    The Hacker's Guide To Python 单元测试 基本方式 python中提供了非常简单的单元测试方式,利用nose包中的nosetests命令可以实现简单的批量测试. 安装nose ...

  8. Python单元测试框架

    目录 概况 系统要求 使用PyUnit构建自己的测试 安装 测试用例介绍 创建一个简单测试用例 复用设置代码:创建固件 包含多个测试方法的测试用例类 将测试用例聚合成测试套件 嵌套测试用例 测试代码的 ...

  9. 一种数据与逻辑分离的Python单元测试工具

    一种数据与逻辑分离的Python单元测试工具 几个概念 TestCase TestCase是一个完整的测试单元,最小的测试执行实体,就是我们常说的测试用例. TestSuite 以某种特性将测试用例组 ...

随机推荐

  1. 没错,就是Access-Control-Allow-Origin,跨域

    服务端添加: <add name="Access-Control-Allow-Origin" value="*" /><add name=&q ...

  2. 【Unity Shader学习笔记】Unity光照基础-漫反射光照

    本代码只适用于平行光. 1.逐顶点漫反射光照 1.1漫反射光照原理 1.2代码实现 在Properties语义块中声明一个漫反射颜色属性 Properties { //漫反射参数,用于调整漫反射效果 ...

  3. Primal_Dual 原始对偶

    不是费用流都需要用 SPFA 吗. 众所周知,SPFA 去世了,然后网络流显然有负边.于是我们可以像 Johnson 全源最短路一样,给边加上势能,具体实现看我之前的 博客 啦. 然后对于每一次跑 D ...

  4. WC2019

    好题啊! 数树 \(\text{opt = 0, 6 pts.}\) 显然答案为 \(y^{n-|E_1∩E_2|}\) . \(\text{opt = 1, 47 pts.}\) \[\sum_{E ...

  5. hash和history路由的区别

    在了解路由模式前,我们先看下 什么是单页面应用,vue-router  的实现原理是怎样的,这样更容易理解路由. SPA与前端路由 SPA(单页面应用,全程为:Single-page Web appl ...

  6. 功耗优化之Sensor功耗分析

    功耗优化之Sensor功耗分析 一.Sensor功耗问题分类 二.Sensor功耗问题分析方法 SSC子系统引起系统无法进入AOSD问题分析: SSC子系统频繁唤醒AP问题分析方法 SSC子系统的GP ...

  7. 联发科 (MTK) sensor bring up

    MT6768平台 1.添加驱动文件 2.添加硬件配置支持 3.添加硬件配置 4.添加编译配置 5.分配空间(非必要,当代码量超过当前空间大小时将会报错,根据报错log改大小即可.) 6.兼容配置 7. ...

  8. AT32F415 修改时钟和晶振方法(原创)

    1. 简介 我们几乎是国内第一批使用AT32F415芯片的客户,那个时候芯片还没涨价,岁月一切静好.使用AT32F415 做了几个小产品,也在持续出货.后来大家都知道,涨价缺货愈演愈烈.好在我们提前囤 ...

  9. Java 多线程共享模型之管程(下)

    共享模型之管程 wait.notify wait.notify 原理 Owner 线程发现条件不满足,调用 wait 方法,即可进入 WaitSet 变为 WAITING 状态 BLOCKED 和 W ...

  10. JVM学习笔记-从底层了解程序运行(一)

    1:JVM基础知识 什么是JVM 1. java虚拟机,跨语言的平台,实现java跨平台 2. 可以实现多种语言跨平台,只要该语言可以编译成.class文件 3. 解释执行.class文件 java是 ...