组织硒测试和单元测试的最佳实践

时间:2012-04-28 04:49:27

标签: django unit-testing selenium selenium-rc

所以我正在我正在研究的几个项目中尝试在selenium中引入django 1.4单元测试。

运行单元测试的标准方法是./manage.py test,我使用django-ignoretests排除我不想测试的特定django应用程序(根据需要)。

但是,有没有办法配置我的项目,以便我可以决定在我想要的时候运行 selenium测试并让./manage.py test只运行标准的单元测试。

分离和组织硒测试和标准单元测试有哪些最佳实践?

2 个答案:

答案 0 :(得分:5)

您始终可以将所有selenium测试分组到一个软件包myapp/selenium_tests/(例如此处https://stackoverflow.com/a/5160779/1138710所述),然后运行manage.py test myapp.selenium_tests并将其余测试分组到myapp/other_tests下1}}。

否则,我想你可以编写一个测试运行器,检查每个测试类是否来自LiveServerTestCase(参见文档:https://docs.djangoproject.com/en/dev/topics/testing/#defining-a-test-runner

答案 1 :(得分:5)

对于有问题的测试类,我添加了以下装饰器:

from django.conf import settings
@unittest.skipIf(getattr(settings,'SKIP_SELENIUM_TESTS', False), "Skipping Selenium tests")  

然后跳过这些测试添加到设置文件:SKIP_SELENIUM_TESTS = True

这可以很容易地包装到LiveServerTestCase的子类或简单的装饰器中。如果我在不止一个地方拥有它,那就已经存在了。