繁体   English   中英

不带Django的Python单元测试

[英]Python unit testing without django

如何在不依赖Django东西的Python(3.4)中编写单元测试?

起初我以为Pycharm确实以某种方式人为地将Django依赖项添加到了单元测试中,但是后来我通过运行

python <test containing file>

而且我仍然得到这个奇怪的Django输出:

Traceback (most recent call last):
    File "test_pinyinTones2NumbersTransformer.py", line 2, in <module> from PinyinTones2NumbersTransformer import PinyinTones2NumbersTransformer
    File "/home/xiaolong/PycharmProjects/PinyinTransformer/pinyintransformer/PinyinTones2NumbersTransformer.py", line 1, in <module> from django.contrib.gis.gdal.prototypes.generation import void_output
ImportError: No module named 'django'

这是我的测试文件的源代码:

import unittest
from PinyinTones2NumbersTransformer import PinyinTones2NumbersTransformer

class TestPinyinTones2NumbersTransformer(unittest.TestCase):
    def setUp(self):
        self.pinyin_tones_2_numbers_transformer = PinyinTones2NumbersTransformer()

    def test_setText (self):
        self.fail()

    def test_transform (self):
        self.fail()

    def test_getToneNumberOfTonedSyllable (self):
        self.assertEquals(self.pinyin_tones_2_numbers_transformer.getToneNumberOfTonedSyllable("ne"), 0)
        self.assertEquals(self.pinyin_tones_2_numbers_transformer.getToneNumberOfTonedSyllable("ān"), 1)
        self.assertEquals(self.pinyin_tones_2_numbers_transformer.getToneNumberOfTonedSyllable("péng"), 2)
        self.assertEquals(self.pinyin_tones_2_numbers_transformer.getToneNumberOfTonedSyllable("nǐ"), 3)
        self.assertEquals(self.pinyin_tones_2_numbers_transformer.getToneNumberOfTonedSyllable("jiào"), 4)

我的项目与django完全无关。 我之前尝试过django教程,但这与我现在正在做的无关。 同样,在看到此消息后,我删除了django,因为我认为python解释器可能与django混淆,后者也具有一个名为unittest的模块,但这并不能解决问题。

我找到了这个:

http://stackoverflow.com/questions/10345948/django-vs-python2-7-unittest-testcase

但首先:我使用的是Python 3.4,我不在乎测试的向后兼容性。 无论如何,没人会看到甚至使用我的程序。 对于我自己来说,这只是一种锻炼,可以使其习惯于编写测试。

我要做的就是为类中的方法编写简单的测试,而没有任何django bonus super mega……我也很确定Python本身的默认单元测试对于我的小项目来说已经足够了。

您的单元测试是子类unittest.TestCase的子类,因此它们不使用任何Django东西。

回溯是告诉你, PinyinTones2NumbersTransformer进口void_outputdjango.contrib.gis.gdal.prototypes.generation 因此,除非更改PinyinTones2NumbersTransformer否则您需要安装django才能运行测试。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM