从后面攻下test文件名模式:django test 自定义测试文件名模式

想在写bug的时候就把测试文件写在旁边,但是Django默认的检测测试文件的模式是test在文件名的前面,这就导致了测试文件和带有bug的文件常常不在一起,比较不方便。但是我直接猜测改变文件匹配的模式比如说把test放在后面这样的,"*.test.py"(如执行下面的代码),但是Django就没发现我写的测试文件,故非常的困惑。

python manage.py test -p "*.test.py"
#或者
python manage.py test --pattern="*.test.py"

效果

System check identified no issues (0 silenced).

----------------------------------------------------------------------
Ran 0 tests in 0.000s

OK

问题的其他的提法:

  • 自定义测试文件的名模式
  • django检测*.test.py的测试文件

测试环境win10 django 3.1

 

默认的测试

Django中运行测试命令不难

python manage.py test

他就会自己去寻找测试文件然后跑测试了,默认的测试文件我目测有tests.py,test*.py 

在应用中存在一个tests.py文件里面有两个测试内容。

from django.test import TestCase

# Create your tests here.

class HelloTest(TestCase):
    def test_a(self):
        pass 
        #加上下面这句就是一个False case
        #assert False,"err"
        
    def test_b(self):
        #这个通过测试
        pass

官网资料和--help中也没有额外的什么信息,

从后面攻下test文件名模式:django test 自定义测试文件名模式_第1张图片

难道就只能是从头开始的明确匹配?

探索尝试

无效的盲目的尝试过

python manage.py test --pattern="*_test.py"

python manage.py test --pattern="*.test.py"

#下面这几个能匹配到hello_jj.py
python manage.py test --pattern="hello_*.py"
python manage.py test --pattern="hello*.py"
python manage.py test --pattern="*hello_jj.py"

#下面这个匹配hello_test.py  
python manage.py test --pattern="*hello_test.py"

下面的能匹配到hello_tset.py

python manage.py test --pattern="*hello_tset.py"
python manage.py test --pattern="*_tset.py"


#但是下面这个匹配不到hello.tset.py 
python manage.py test --pattern="*.tset.py"

不会不用的是正则的匹配点表示任意符号?但是下面的测试也说明了不是这样的

python manage.py test --pattern="*\.tset.py"

后面搜索通配符,了解到*放在后面属于后匹配会高效一点。哪怕不要效率 我也没有办法啊

到这里 我还能怎么办 我选择放弃

可能以test放后面是不行了 只能 绕路而行了,以后的测试文件就这么写了

python manage.py test --pattern="*_TEST.py"
python manage.py test --pattern="*_test.py"
#但是却不能匹配 he.llo_test.py 限制点的使用

准备去看源码的 找了一下没找到 也放弃了

你可能感兴趣的:(后端,Django,test,pattern)