![]() |
1
52
你可以把你的测试放在一个
然后提供一个测试运行脚本(
example
)包括你的
(
笔记
在测试开始时(即在安装方法中,或在一组doctest的开始),您可以动态添加
|
![]() |
2
18
@paluh的回答要求将不需要的代码添加到非测试文件中,根据我的经验,@carl的解决方案不适用于
|
![]() |
3
15
我分享了我的 solution 我在项目中使用的。也许这对某人有帮助。
1) 在任何文件中定义模型(我通常在测试用例附近的测试文件中定义模型)
2) 添加装饰器
此装饰器在每次测试之前在数据库中创建表,并在测试之后删除该表。
创造
/
删去
手动表格:
|
![]() |
4
11
原始答复:
./manage.py测试应用程序 ):
单元测试也使用这种模型定义。 |
![]() |
5
11
我已经为django 1.7+找到了一种只测试模型的方法。
基本的想法是,让你的
我有不同的想法
而且
然后,通过
最后,您可以使用param运行测试
|
![]() |
6
10
我选择了一种稍微不同的方法,尽管更为耦合,来动态地创建模型以进行测试。
我还在测试模型中设置了db_表,因为否则Django会用名称创建表
|
![]() |
7
10
|
![]() |
8
4
然后,我创建了一个特殊的特定于测试的models.py文件,如
在我的设置方法中,我调用create_models_from_app('myapp.tests'),它会创建适当的表。
|
![]() |
9
4
结合你的回答,特别是@slacy的回答,我做到了:
|
![]() |
10
1
如果您正在编写可重用的django应用程序, 为它创建一个最小的测试专用应用程序 !
两者相加
7835 ,我最终选择了一种完全不同的方法。 我希望我的应用程序(以某种方式扩展了queryset.values())能够单独测试;另外,我的软件包确实包含一些模型,我希望在测试模型和软件包模型之间有一个清晰的区别。 那时我意识到在包中添加一个非常小的django项目更容易! 这还允许更清晰地分离代码IMHO: 在那里,您可以干净地定义您的模型,而无需任何黑客攻击,并且您知道,当您从那里运行测试时,将创建这些模型!
|
![]() |
11
0
有人已经提到了
Django ticket #7835
,但似乎有一个更为近期的回答,对于Django的最新版本来说,这个回答看起来更有希望。明确地
#42
|
![]() |
Phil Gunning · 使用嵌套函数更改进行模拟测试 2 年前 |
![]() |
Korr · 如何用Jest模拟组件测试中服务的功能 2 年前 |
![]() |
Jordan Lee · 在另一个类中使用实例方法作为装饰器 6 年前 |
![]() |
user2350138 · 为WireMock构建Java项目 6 年前 |
|
user8584384 · 单元测试不起作用,因为导入的文件作为输入 6 年前 |
![]() |
Vino · 如何模拟Python类的对象? 6 年前 |
![]() |
Enrico · .NET核心ASP。带有会话和测试的NET控制器 6 年前 |