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

    Question 443. String Compression Solution 题目大意:把一个有序数组压缩, 思路:遍历数组 Java实现: public int compress(char[] ...

  2. 125_Power BI 中 DAX 的性能测试

    博客:www.jiaopengzi.com 焦棚子的文章目录 请点击下载附件 一.背景 最近在看DAX"圣经"第二版<The Definitive Guide to DAX ...

  3. 2020级cpp机考模拟题A卷-#题解1

    为了各位朋友的身心健康(不是),我们按照题目难度顺序来写题解. 第一次写题解,希望多点包容和鼓励(恬不知耻 1:谁先输出-4 题意: 输入3个整数,按从大到小的顺序输出,每两个数字间加一个空格. 题解 ...

  4. 高危!Fastjson反序列化远程代码执行漏洞风险通告,请尽快升级

    据国家网络与信息安全信息通报中心监测发现,开源Java开发组件Fastjson存在反序列化远程代码执行漏洞.攻击者可利用上述漏洞实施任意文件写入.服务端请求伪造等攻击行为,造成服务器权限被窃取.敏感信 ...

  5. 基于云服务MRS构建DolphinScheduler2调度系统

    摘要:本文介绍如何搭建DolphinScheduler并运行MRS作业. 本文分享自华为云社区<基于云服务MRS构建DolphinScheduler2调度系统>,作者: 啊喔YeYe . ...

  6. 【Spring】事务的执行原理(三)

    事务的回滚 如果获取事务属性不为空,并且抛出的异常是RuntimeException或者Error类型,调用事务管理器中的rollback方法进行回滚 如果事务属性为空或者抛出的异常不是Runtime ...

  7. CSCMS代码审计

    很久之前审的了. 文章首发于奇安信攻防社区 https://forum.butian.net/share/1626 0x00 前言 CSCMS是一款强大的多功能内容管理系统,采用php5+mysql进 ...

  8. 【Redis】Redis Cluster-集群故障转移

    集群故障转移 节点下线 在集群定时任务clusterCron中,会遍历集群中的节点,对每个节点进行检查,判断节点是否下线.与节点下线相关的状态有两个,分别为CLUSTER_NODE_PFAIL和CLU ...

  9. BUUCTF-签到题

    签到题 很简单写在介绍里面了.

  10. SAP LUW 实现提交数据库更新

    CALL FUNCTION 'TRANSACTION_BEGIN' IMPORTING transaction_id = lv_transaction_id. * 更新日志表 MODIFY zfit0 ...