2011-06-13 5 views
19

Linux 쉘에 한 줄을 입력하여 현재 디렉토리에서 모든 테스트를 실행할 수 있어야합니다. 일부 디렉토리에서는 정상적으로 작동합니다. 하지만 다른 사람들은 "nosetests"를 입력하면 테스트가 실행되지 않습니다. 테스트는 개별적으로 호출하면 실행되지만 모두 자동으로 실행해야합니다.Nose를 사용하여 디렉토리의 모든 테스트 실행

/extwebserver 
    __init__.py 
    test_Detection.py 
    test_Filesystem.py 
    test_Hardware.py 
    ... 

을 내가 부모 디렉토리에 "nosetests"를 실행하면 실행되는 특정 하위 디렉토리에있는 모든 테스트 만/extwebserver 또는 다른 하위 디렉토리 또는 부모없이 테스트 : 여기에 작동하지 않습니다 디렉토리 중 하나입니다 디렉토리 자체가 실행됩니다. 다니엘 아 버클에 의해 Python Testing: Beginner's Guide에서

[email protected]:~/Documents/ParkAssist/m3/linux/appfs/master/usr/bin/piopio/testing$ nosetests -vv --collect-only 
nose.selector: INFO: /home/matthew/Documents/ParkAssist/m3/linux/appfs/master/usr/bin/piopio/testing/baseTestCase.py is executable; skipped 
nose.selector: INFO: /home/matthew/Documents/ParkAssist/m3/linux/appfs/master/usr/bin/piopio/testing/extwebserver/run.py is executable; skipped 
nose.selector: INFO: /home/matthew/Documents/ParkAssist/m3/linux/appfs/master/usr/bin/piopio/testing/extwebserver/test_Detection.py is executable; skipped 
nose.selector: INFO: /home/matthew/Documents/ParkAssist/m3/linux/appfs/master/usr/bin/piopio/testing/extwebserver/test_Filesystem.py is executable; skipped 
nose.selector: INFO: /home/matthew/Documents/ParkAssist/m3/linux/appfs/master/usr/bin/piopio/testing/extwebserver/test_Hardware.py is executable; skipped 
nose.selector: INFO: /home/matthew/Documents/ParkAssist/m3/linux/appfs/master/usr/bin/piopio/testing/extwebserver/test_Mode.py is executable; skipped 
nose.selector: INFO: /home/matthew/Documents/ParkAssist/m3/linux/appfs/master/usr/bin/piopio/testing/extwebserver/test_System.py is executable; skipped 
nose.selector: INFO: /home/matthew/Documents/ParkAssist/m3/linux/appfs/master/usr/bin/piopio/testing/extwebserver/test_View.py is executable; skipped 
nose.selector: INFO: /home/matthew/Documents/ParkAssist/m3/linux/appfs/master/usr/bin/piopio/testing/extwebserver/test_Webserver.py is executable; skipped 
nose.selector: INFO: /home/matthew/Documents/ParkAssist/m3/linux/appfs/master/usr/bin/piopio/testing/mocks/bottle.py is executable; skipped 
nose.selector: INFO: /home/matthew/Documents/ParkAssist/m3/linux/appfs/master/usr/bin/piopio/testing/utils/test_timestamps.py is executable; skipped 
nose.selector: INFO: /home/matthew/Documents/ParkAssist/m3/linux/appfs/master/usr/bin/piopio/testing/testCamera.py is executable; skipped 
nose.selector: INFO: /home/matthew/Documents/ParkAssist/m3/linux/appfs/master/usr/bin/piopio/testing/testCameraManager.py is executable; skipped 
nose.selector: INFO: /home/matthew/Documents/ParkAssist/m3/linux/appfs/master/usr/bin/piopio/testing/testMainControllerServer.py is executable; skipped 
nose.selector: INFO: /home/matthew/Documents/ParkAssist/m3/linux/appfs/master/usr/bin/piopio/testing/testMode.py is executable; skipped 
nose.selector: INFO: /home/matthew/Documents/ParkAssist/m3/linux/appfs/master/usr/bin/piopio/testing/testPASEServerClient.py is executable; skipped 
nose.selector: INFO: /home/matthew/Documents/ParkAssist/m3/linux/appfs/master/usr/bin/piopio/testing/testView.py is executable; skipped 
nose.selector: INFO: /home/matthew/Documents/ParkAssist/m3/linux/appfs/master/usr/bin/piopio/testing/testViewsManager.py is executable; skipped 
nose.selector: INFO: /home/matthew/Documents/ParkAssist/m3/linux/appfs/master/usr/bin/piopio/testing/test_commission/test_FSM.py is executable; skipped 
nose.selector: INFO: /home/matthew/Documents/ParkAssist/m3/linux/appfs/master/usr/bin/piopio/testing/test_commission/test_Webserver.py is executable; skipped 
test_add (testing.utils.test_config.test_config) ... ok 
test_add_set (testing.utils.test_config.test_config) ... ok 
test_load (testing.utils.test_config.test_config) ... ok 
test_load_valid (testing.utils.test_config.test_config) ... ok 
test_modify_set (testing.utils.test_config.test_config) ... ok 
test_save (testing.utils.test_config.test_config) ... ok 
test_update (testing.utils.test_config.test_config) ... ok 
test_get_full_version (testing.utils.test_controller.test_controller) ... ok 
test_get_hwaddr (testing.utils.test_controller.test_controller) ... ok 
test_get_ip (testing.utils.test_controller.test_controller) ... ok 
test_get_netmask (testing.utils.test_controller.test_controller) ... ok 
test_get_version (testing.utils.test_controller.test_controller) ... ok 
test_FloatEncoder (testing.utils.test_fileio.test_fileio) ... ok 
test_read_file (testing.utils.test_fileio.test_fileio) ... ok 
test_read_json_string (testing.utils.test_fileio.test_fileio) ... ok 
test_system_to_text (testing.utils.test_fileio.test_fileio) ... ok 
test_write_file (testing.utils.test_fileio.test_fileio) ... ok 
test_get_hwaddr (testing.utils.test_netdev.test_netdev) ... ok 
test_get_ip (testing.utils.test_netdev.test_netdev) ... ok 
test_get_netmask (testing.utils.test_netdev.test_netdev) ... ok 
test_set_datetime (testing.utils.test_syncdatetime.test_syncdatetime) ... ok 
test_cast (testing.utils.test_tools.test_tools) ... ok 
test_get_image (testing.testdetection.test_CameraGuardian.test_CameraGuardian) ... ok 

---------------------------------------------------------------------- 
Ran 23 tests in 0.003s 
+0

@Matt : nosetests -vv --collect-only'의 출력을 제공하여 nose의 테스트 검색 알고리즘에서 자세한 결과를 볼 수 있습니까? –

+0

비슷한 문제가있어서 테스트가 실행 가능하기 때문에 건너 뛰었습니다 ..? – user2921139

답변

45

:

코가 디렉토리에 테스트 및 이름이 testTest, 또는를 포함하는 시작 모듈을 찾습니다 여기에 편집

출력의 '_', '.' 또는 '- '다음에 test 또는 Test이 뒤 따른다. 이것이 기본값이지만 실제로 전체적인 이야기는 아닙니다.

nosetests -vv --collect-only 

나는 내가 코가 실행 파일을 건너 뛰는 것으로 나타났습니다, 디렉토리에 위의를 실행하는 경우 :

An Extended Introduction to the nose Unit Testing Framework는 실행하여 코의 테스트 검색 알고리즘에서 자세한 출력을 볼 수 있음을 보여줍니다. 그게 문제라면 파일 모드를 비 실행 파일로 변경해야합니다. Mac OS X 또는 Linux의 경우 다음을 사용하여 수행 할 수 있습니다.

chmod 644 file.py 

또는 그 유사 당신이 당신의 모듈/파일 가져 오기 안전하다는 것을 알고있는 경우

, 당신은 (남자 nosetests '에서) "실행 가능한 파이썬 모듈에서 시험을 찾아"로 --exe 옵션으로 코를 실행할 수 있습니다

nosetests --exe 
+0

디렉토리 이름 바꾸기를 시도했지만 여전히 디렉토리에서 테스트를 수집하지 않습니다. 나는 test *와 test_ * 형식을 시도했지만 어느 것도 작동하지 않았다. 나는 또한 --collect-only로 실행했고 하위 디렉토리에서 실행 가능하고 따라서 건너 뛴 파일을 나열했습니다. 그러나 python.exe에 대한 경로를 제거했으며 파일은 여전히 ​​실행 파일로 나열됩니다. – Matt

+0

Nose가 건너 뛴 파일에 대해 파일 모드를 실행 불가능으로 변경하십시오. –

+1

chmod 트릭이 효과적입니다.이제는 작업 디렉토리와 모든 하위 디렉토리의 모든 테스트를 수집하고 있습니다. 도와 주셔서 감사합니다! – Matt

11

명령 줄에서 --exe을 사용하여 실행 파일을 유효한 테스트로 간주하도록 할 수 있습니다. 당신이 --exe 매번을 writting의 피곤하면 라인 넣을 수 있습니다하십시오 .noserc에

= 진정한

exe ​​인이나 (Windows 용) nose.cfg 파일 (유닉스/리눅스 용) yout 홈 디렉토리.

관련 문제