virtualenv python3




مشاكل في استخدام الأنف في virtualenv (6)

لا أستطيع استخدام الأنف (nosetests) في مشروع virtualenv - لا يبدو أنه يمكن العثور على الحزم المثبتة في بيئة virtualenv.

الشيء الغريب هو أنه يمكنني ضبط

test_suite = 'nose.collector'

في setup.py وتشغيل الاختبارات على ما يرام

python setup.py test

ولكن عند تشغيل nosetests مباشرة ، هناك كل أنواع أخطاء الاستيراد.

لقد جربته مع كل من تثبيت الأنف على مستوى النظام وحزمة الأنف virtualenv ولا حظ.

أي أفكار؟

شكر!!


إذا فشل كل شيء آخر ، فحاول تثبيت الأنف في venv و / أو قم بتشغيل nosetests-2.7 . أعتقد أن إجابة @ andrea-zonca لها نفس التأثير إذا كان بيثون venv 2.7


إليك ما يصلح لي:

$ virtualenv --no-site-packages env1
$ cd env1
$ source bin/activate            # makes "env1" environment active,
                                 # you will notice that the command prompt
                                 # now has the environment name in it.

(env1)$ easy_install nose        # install nose package into "env1"

لقد أنشأت حزمة أساسية حقا slither لها ، في test_suite ، نفس سمة test_suite كما ذكرت أعلاه. ثم وضعت مصدر الحزمة تحت env1/src .

إذا نظرت إلى داخل env1/src ، فسترى:

slither/setup.py
slither/slither/__init__.py
slither/slither/impl.py          # has some very silly code to be tested
slither/slither/tests.py         # has test-cases 

يمكنني إجراء الاختبارات باستخدام أمر فرعي test :

(env1)$ pushd src/slither
(env1)$ python setup.py test
# ... output elided ...
test_ctor (slither.tests.SnakeTests) ... ok
test_division_by_zero (slither.tests.SnakeTests) ... ok
Ran 2 tests in 0.009s
OK
(env1)$ popd

أو ، يمكنني إجراء نفس الاختبارات باستخدام اختبارات nosetests :

(env1)$ pushd src
(env1)$ nosetests slither/
..
Ran 2 tests in 0.007s
OK
(env1)$ popd

لاحظ أيضًا أن nosetests يمكن أن يكون صعب الإرضاء حول الملفات التنفيذية. يمكنك اجتياز - --exe إذا كنت ترغب في اكتشاف اختبارات في وحدات بيثون القابلة للتنفيذ.


ربما كان هذا تغييرًا حديثًا ، لكن بالنسبة لي ، عندما قمت بتثبيت nosetests من خلال النقطة ، كان هناك nosetests قابل للتنفيذ مثبتًا في .virtualenvs/<env>/bin ، والذي (بشكل غير مفاجئ) يعمل بشكل صحيح مع virtualenv.


في نفس الموقف ، كنت بحاجة لإعادة تحميل virtualenv لمسار ليتم تحديثه بشكل صحيح:

deactivate
env/bin/activate

لدي مشكلة مماثلة. ساعد الحل التالي:

python `which nosetests` 

(بدلا من مجرد nosestests )


هل أنت قادر على تشغيل myenv/bin/python /usr/bin/nosetests ؟ يجب أن يتم تشغيل Nose باستخدام مجموعة مكتبة البيئة الافتراضية.





nosetests