TestWeb 클래스와 test_something ()과 같은 많은 메서드를 포함하는 test_web.py라는 파일이 있습니다.
클래스의 모든 테스트를 다음과 같이 실행할 수 있습니다.
$ nosetests test_web.py
...
======================================================================
FAIL: checkout test
----------------------------------------------------------------------
Traceback (most recent call last):
File "/Users/me/path/here/test_web.py", line 187, in test_checkout
...
하지만 개별 테스트를 실행할 수없는 것 같습니다. 동일한 PWD에서 실행할 때 “No such test”오류가 발생합니다.
$ nosetests test_web.py:test_checkout
$ nosetests TestWeb:test_checkout
여기서 무엇이 잘못 되었을까요?
답변
다음과 같이 지정해야합니다. nosetests <file>:<Test_Case>.<test_method>
또는
nosetests test_web.py:TestWeb.test_checkout
문서 보기
답변
모듈을 지정할 수도 있습니다.
nosetests tests.test_integration:IntegrationTests.test_user_search_returns_users
답변
다른 답변과 마찬가지로 명령 줄에 이름을 지정하면 효과가 있고 유용합니다. 그러나 테스트를 작성하는 중에 작업중인 테스트 만 실행하고 싶은 경우가 많으며 명령 줄에 작성해야하는 이름이 꽤 길고 작성하기 번거로워집니다. . 이 경우 커스텀 데코레이터와 플래그를 사용하는 것을 선호합니다.
나는 다음과 같이 wipd
( “work in progress decorator”)를 정의 합니다 :
from nose.plugins.attrib import attr
def wipd(f):
return attr('wip')(f)
이것은 장식 @wipd
하는 wip
객체에 속성을 설정 하는 데코레이터 를 정의합니다 . 예를 들면 :
import unittest
class Test(unittest.TestCase):
@wipd
def test_something(self):
pass
그런 다음 -a wip
명령 줄에서으로 표시된 테스트로 테스트 실행 범위를 좁힐 수 있습니다 @wipd
.
이름에 대한 참고 사항 …
이런 종류의 문제를 피하기 @wipd
보다는 데코레이터 의 이름 을 사용하고 @wip
있습니다.
import unittest
class Test(unittest.TestCase):
from mymodule import wip
@wip
def test_something(self):
pass
def test_something_else(self):
pass
는 import
것 wip
장식 멤버 클래스의 , 그리고 모든 클래스의 시험은 선택됩니다. attrib
에 의해 생성하고 테스트 선택 속성이 너무 존재하는 경우 시험 방법의 상위 클래스가 볼 수있는 플러그인 검사 및 속성 attrib
할 수는 분리 된 공간에 존재하지. 따라서 테스트 -a foo
하고 클래스에이 포함되어 있으면 클래스의 foo = "platypus"
모든 테스트가 플러그인에 의해 선택됩니다.
답변
여러 특정 테스트를 실행하려면 공백으로 구분하여 명령 줄에 추가하기 만하면됩니다.
nosetests test_web.py:TestWeb.test_checkout test_web.py:TestWeb.test_another_checkout
답변
내 테스트에서 모듈 이름으로 지정하는 것이 작동하지 않습니다.
에 대한 실제 경로를 지정해야합니다 .py
.
nosetests /path/to/test/file.py:test_function
이것으로 nose==1.3.7
답변
내 요구 사항은 다른 Windows 디렉토리 에있는 테스트 파일에서 단일 테스트를 실행하는 것이 었습니다. 이것은 다음과 같이 anaconda 명령 프롬프트 에서 수행되었습니다 .
다음에서 코 테스트 를 실행 했습니다.
(base) C:\Users\ABC\Documents\work\
그러나 test_MyTestFile.py 및 methodsFile.py 는 다음과 같습니다.
(base) C:\Users\ABC\Documents\work\daily\
다음과 같이 따옴표 로 경로 를 포함하여 단일 테스트를 실행하십시오 .
(base) C:\Users\ABC\Documents\work>nosetests "daily\\test_MyTestFile.py:MyTestClass.test_add_integers"
test_MyTestFile.py 는 다음과 같습니다.
import methodsFile
import unittest
class MyTestClass(unittest.TestCase):
def test_add_integers(self):
assert methodsFile.add(5, 3) == 8
def test_add_integers_zero(self):
assert methodsFile.add(3, 0) == 3
methodsFile.py 는 다음과 같습니다.
def add(num1, num2):
return num1 + num2
답변
![](http://daplus.net/wp-content/uploads/2023/04/coupang_part-e1630022808943-2.png)