如何通过python-active-directory模块中的setup.py运行一次鼻子测试?

时间:2019-02-09 02:39:32

标签: python python-3.x python-unittest nose setup.py

我正在顽固地尝试将Python模块https://github.com/theatlantic/python-active-directory转换为Python3。您可以在https://github.com/nbmorgan/python-active-directory/tree/master3上看到我的努力。

我已经弄清楚了以下几点,我可以通过以下任一方法在克隆的项目中运行测试套件:

  1. export TEST_CONF_NAME="test.conf" ; python setup.py test
  2. export TEST_CONF_NAME="../test.conf" ; python setup.py nosetests

这将在顶部进行第一个简单测试,从而产生巨大的输出。我试图使用安装程序或鼻子测试帮助中所述的多种形式的运行单项测试变体,但通常会遇到module not found错误或test not defined的某些变体。

如果有人可以让我指向命令行,让我只运行:test_client.TestADClient.test_domains,那就太棒了。

目前,我使用的是export TEST_CONF_NAME="../test.conf" ; python setup.py nosetests 2>&1 | cat -n | head -80 | tail -31,虽然俗气,但是却能获取信息。

我要感谢作者的测试-这使得重构的冷方法成为可能。我不是Python模块构建者,只是试图提供帮助的模块用户。

2 个答案:

答案 0 :(得分:0)

是否使用setup进行运行?我像这样运行某些测试:

nosetests tests/core/test_client.py:TestADClient.test_search --collect
.
----------------------------------------------------------------------
Ran 1 test in 0.000s
OK

但是实际运行失败,因为测试使用pytest夹具(测试的conf参数)。因此,您需要使用pytest运行它。

$ pytest tests/core/test_client.py::TestADClient::test_search -vv
============================ test session starts ============
...
collected 1 item                                                             
tests/core/test_client.py::TestADClient::test_search SKIPPED                           [100%] 

答案 1 :(得分:0)

看起来像是:

的副本

How to run unit tests with "pip install"?,我前段时间回答过。

但是-setup.py test已过时,因此我不会将其用于新开发。

看看:https://setuptools.readthedocs.io/en/latest/setuptools.html#test-build-package-and-run-a-unittest-suite

因此,对于新项目,我建议使用makefile。

make install
make test
make clean 
# etc ...