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

Django 组织selenium测试和单元测试的最佳实践,django,unit-testing,selenium,selenium-rc,Django,Unit Testing,Selenium,Selenium Rc,因此,我在我正在从事的几个项目中尝试在django 1.4中引入selenium单元测试 运行单元测试的标准方法只是执行/manage.py test,我使用django ignoretests排除我不想测试的特定django应用程序(根据需要) 但是,是否有一种方法可以配置我的项目,以便我可以决定在需要时只运行selenium测试,并让/manage.py测试只运行标准单元测试 分离和组织selenium测试和标准单元测试的一些最佳实践是什么?您可以将所有selenium测试分组在一个包中my

因此,我在我正在从事的几个项目中尝试在
django 1.4
中引入
selenium
单元测试

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

但是,是否有一种方法可以配置我的项目,以便我可以决定在需要时只运行selenium测试,并让
/manage.py测试
只运行标准单元测试


分离和组织selenium测试和标准单元测试的一些最佳实践是什么?

您可以将所有selenium测试分组在一个包中
myapp/selenium\u测试/
(如本文所述)然后运行
manage.py test myapp.selenium_测试
,并将其余测试分组在say
myapp/other_测试


否则,我假设您可以编写一个测试运行程序,检查每个测试类是否派生自
LiveServerTestCase
(请参阅文档:)

对于所讨论的测试类,我添加了以下装饰程序:

from django.conf import settings
@unittest.skipIf(getattr(settings,'SKIP_SELENIUM_TESTS', False), "Skipping Selenium tests")  
然后要跳过这些测试,请添加到设置文件:
skip\u SELENIUM\u tests=True


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

由于硒测试往往是功能性的,所以我尝试做同样的事情,将它们保存在一个单独的包中,并提供一个跳过它们的选项()。我喜欢测试运行程序的想法,但在某些情况下,测试可能不是LiveServerTestCase的后代(这是另一个问题)。