2012-09-11 3 views
3

자동화 된 웹 테스트를위한 테스트 프레임 워크를 seleniumunittest으로 만들려고하고 테스트를 고유 한 스크립트로 구조화하려고합니다. 그래서 다음과 같이 구성했습니다 :Python unittest 모듈로 테스트를 구성하려면 어떻게합니까?

base.py -이 세션에는 세션 설정을위한 기본 셀레늄 테스트 케이스 클래스가 포함됩니다.

import unittest 
from selenium import webdriver 

# Base Selenium Test class from which all test cases inherit. 
class BaseSeleniumTest(unittest.TestCase): 
    def setUp(self): 
     self.browser = webdriver.Firefox() 
    def tearDown(self): 
     self.browser.close() 

main.py는 -이 모든 개별 테스트가 실행되는 전체 테스트 스위트가되고 싶어요.

import unittest 
import test_example 

if __name__ == "__main__": 
    SeTestSuite = test_example.TitleSpelling() 
    unittest.TextTestRunner(verbosity=2).run(SeTestSuite) 

test_example.py - 예 테스트 케이스는 너무 자신에 이러한 실행을 위해 좋은 수 있습니다. 나는이 unittest 실행이와 내가 놓친해야하는 매우 특별한 방법에 의한 의심

Traceback (most recent call last): 
    File "H:\Python\testframework\main.py", line 5, in <module> 
    SeTestSuite = test_example.TitleSpelling() 
    File "C:\Python27\lib\unittest\case.py", line 191, in __init__ 
    (self.__class__, methodName)) 
ValueError: no such test method in <class 'test_example.TitleSpelling'>: runTest 

:

from base import BaseSeleniumTest 

# Test the spelling of the title 
class TitleSpelling(BaseSeleniumTest): 
    def test_a(self): 
     self.assertTrue(False) 

    def test_b(self): 
     self.assertTrue(True) 

문제는 내가 main.py를 실행할 때 다음과 같은 오류를 얻을 수 있다는 것입니다 문서가 내 테스트를 구조화하기를 기대하는 방식을 속이십시오. 어떤 포인터?

SeTestSuite = unittest.defaultTestLoader.discover(start_dir='.') 

그리고 러너 라인 (아마도)해야한다 :

+0

+1 나는 년후 이유에 대해 자신 궁금 가장 보였기 때문에 일하고 있지 않습니다. 귀하의 '동의'에 따라, 내 제안이 효과가 있었나요? – aneroid

+0

@aneroid 예, 죄송합니다 -'SeTestSuite = test_example.TitleSpelling()'줄이 잘못되어서 문서를 잘못 해석했습니다. 가장 좋은 방법은 모든 테스트를 별도의 폴더에 넣고 아래에 제안한 discover() 메소드를 사용하는 것입니다. 그러면 해당 디렉토리를 통해 반복되어 모든 테스트가 실행됩니다! – persepolis

답변

1

100 % 확실하지만 main.py에, 당신은이 필요할 수 있습니다하지

# if your line didn't work 
unittest.TextTestRunner(verbosity=2).run(unittest.TestSuite(SeTestSuite)) 
+0

@persepolis - 내가 제안한 두 줄 또는 첫 줄만 입력 했습니까? – aneroid

관련 문제