6

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

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

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

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

4

2 回答 2

5

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

否则,我想您可以编写一个测试运行程序来检查每个测试类是否派生自LiveServerTestCase(请参阅文档:https ://docs.djangoproject.com/en/dev/topics/testing/#defining-a-test-亚军

于 2012-05-22T08:31:04.033 回答
5

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

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

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

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

于 2012-05-24T18:44:33.913 回答