Nose로 실행하는 Python 테스트가 있습니다. 나는 시험의 매우 큰 금액을 가지고 있고이 모듈 식 코드 아키텍처를 만들려하기 때문에 .... 나는 내부의 report_pass_fail, 설정 및 해체 방법을 가지고 싶습니다 때문에Python의 다른 클래스 내부에서 메서드 호출
class Logout(unittest.TestCase):
def report_pass_fail(self):
#code
def setUp(self):
#code
def test_Logout(self):
#code
def tearDown(self):
#code
: 예는 이것이다 별도의 파일 (모듈)을 만들고 테스트 클래스 내에 필요할 때 호출하면됩니다.
나는 OOP에 익숙하지 않다. 몇 가지 조합을 시도했지만 성공하지 못했다. 어떻게 할 수 있습니까?
import json, httplib, base64, unittest, sys
from selenium import webdriver
import className
from creds import config, sauce_hub
class Fixtures(unittest.TestCase):
def report_pass_fail(self):
base64string = base64.encodestring('%s:%s' % (config['username'], config['access-key']))[:-1]
result = json.dumps({'public': 'true', 'passed': sys.exc_info() == (None, None, None)})
connection = httplib.HTTPConnection("saucelabs.com")
connection.request('PUT', '/rest/v1/%s/jobs/%s' % (config['username'], self.wd.session_id), result, headers={"Authorization": "Basic %s" % base64string})
result = connection.getresponse()
return result.status == 200
def setUp(self):
desired_capabilities = webdriver.DesiredCapabilities.FIREFOX
desired_capabilities['version'] = '4'
desired_capabilities['platform'] = 'Linux'
desired_capabilities['name'] = className.getName(self)
desired_capabilities['record-video'] = False
self.wd = webdriver.Remote(desired_capabilities=desired_capabilities,
command_executor="http://" + config['username'] + ":" + config['access-key'] + sauce_hub)
self.wd.implicitly_wait(10)
def tearDown(self):
self.wd.quit()
그리고 테스트 파일에서의 사용이 같은 것입니다 :
import unittest
from fixture_module import Fixtures
#is_alert_present(wd)
#credentials
class DeleteLectureFromCoursePanel(Fixtures,unittest.TestCase):
import fixture_module
f = fixture_module.Fixtures()
f.report_pass_fail()
f.setUp()
def test_DeleteLectureFromCoursePanel(self):
success = True
wd = self.wd
wd.find_element_by_link_text("Delete").click()
self.assertEqual("Are you sure?", wd.switch_to_alert().text)
wd.switch_to_alert().accept()
self.assertTrue(success)
f.tearDown()
if __name__ == '__main__':
unittest.main()
그것은 좋아 보인다 PyCharmIDE에 오류가 없지만 때 나는
내가 만든 모듈이 있습니다 콘솔에서 실행하십시오 :
안녕 다니엘. 감사합니다. DeleteLectureFromCoursePanel에서 TestCase의 상속을 제거하고 테스트 클래스 내부에서 가져 오기와 인스턴스를 삭제했습니다. 이제는 원하는대로 작동합니다. 메소드가 자동으로 호출됩니다. 파이썬에서 OOP를 더 잘 이해할 수 있다고 생각합니다. 다시 한 번 감사드립니다! –