如何打包 Django 应用程序以使其易于测试?
How to package a Django app to be test-friendly?
我一直在研究 this side project,它可以有效地替代 Django 的默认 FileField
和 ImageField
类。更像是一个薄包装器,它可以让你改变这个:
attachment = models.FileField(upload_to="attachments")
image = models.ImageField(
upload_to="images",
width_field="image_width",
height_field="image_height"
)
进入这个:
attachment = EncryptedFileField(upload_to="attachments")
image = EncryptedImageField(
upload_to="images",
width_field="image_width",
height_field="image_height"
)
并神奇地加密所有事物。
问题是,虽然到目前为止效果很好,而且我有 tests,但打包仍然很麻烦。
具体来说:
- 我不知道如何 运行 演示之外的测试。您需要
cd
到 demo
和 运行 ./manage.py test
并且必须有从该目录到 ../django_encrypted_filefield
的符号链接。这不可能是 "right" 的方法...对吧?
- 我想我已经
setup.py
尽我所能 pip install -e git+...
并且一切正常,但我认为 demo
不应该包括在内,对吗?但是如果我排除它,测试呢?
- 理想情况下,我想设置 tox 来执行通常的 pep8 和单元测试 运行,但我不知道如何为依赖 Django 的项目执行此操作。
TL;DR:有人能告诉我一个简单的 django 模块,它可以进行测试和打包 "right"?
I don't know how to run the tests outside of the demo. You need to cd
into demo and run ./manage.py test and there has to be a symlink from
that directory to ../django_encrypted_filefield. This can't be the
"right" way to do this... right?
您可以将 demo/demo 的内容移动到 demo,并将 demo/manage.py 移动到基本文件夹。
现在您可以简单地 运行 ./manage.py 在基础文件夹中测试
Ideally, I'd like to setup tox to do the usual pep8 & unit test run,
but I don't know how to do that for a project that's Django-dependent.
也许可以在调用 make test 的地方使用 Makefile,然后 运行 ./manage.py 自动测试。与 pep8
相同
TL;DR: Can someone point me to a simple django module that does tests
& packaging "right"?
我知道可以有一个外部应用程序并在您自己的 django 项目中使用它,如果我是正确的,这就是您想要的。您只需将一个应用程序(如您的应用程序)包含在您的项目中,方法是将其包含在 settings.py
中的 INSTALLED_APPS
中。
这是一个 example。 (django-leaflet)
另一个例子 specifically about the tests.
虽然我不确定包装。
我一直在研究 this side project,它可以有效地替代 Django 的默认 FileField
和 ImageField
类。更像是一个薄包装器,它可以让你改变这个:
attachment = models.FileField(upload_to="attachments")
image = models.ImageField(
upload_to="images",
width_field="image_width",
height_field="image_height"
)
进入这个:
attachment = EncryptedFileField(upload_to="attachments")
image = EncryptedImageField(
upload_to="images",
width_field="image_width",
height_field="image_height"
)
并神奇地加密所有事物。
问题是,虽然到目前为止效果很好,而且我有 tests,但打包仍然很麻烦。
具体来说:
- 我不知道如何 运行 演示之外的测试。您需要
cd
到demo
和 运行./manage.py test
并且必须有从该目录到../django_encrypted_filefield
的符号链接。这不可能是 "right" 的方法...对吧? - 我想我已经
setup.py
尽我所能pip install -e git+...
并且一切正常,但我认为demo
不应该包括在内,对吗?但是如果我排除它,测试呢? - 理想情况下,我想设置 tox 来执行通常的 pep8 和单元测试 运行,但我不知道如何为依赖 Django 的项目执行此操作。
TL;DR:有人能告诉我一个简单的 django 模块,它可以进行测试和打包 "right"?
I don't know how to run the tests outside of the demo. You need to cd into demo and run ./manage.py test and there has to be a symlink from that directory to ../django_encrypted_filefield. This can't be the "right" way to do this... right?
您可以将 demo/demo 的内容移动到 demo,并将 demo/manage.py 移动到基本文件夹。
现在您可以简单地 运行 ./manage.py 在基础文件夹中测试
Ideally, I'd like to setup tox to do the usual pep8 & unit test run, but I don't know how to do that for a project that's Django-dependent.
也许可以在调用 make test 的地方使用 Makefile,然后 运行 ./manage.py 自动测试。与 pep8
相同TL;DR: Can someone point me to a simple django module that does tests & packaging "right"?
我知道可以有一个外部应用程序并在您自己的 django 项目中使用它,如果我是正确的,这就是您想要的。您只需将一个应用程序(如您的应用程序)包含在您的项目中,方法是将其包含在 settings.py
中的 INSTALLED_APPS
中。
这是一个 example。 (django-leaflet) 另一个例子 specifically about the tests.
虽然我不确定包装。