广义情景如下:
import unittest
class Test(unittest.TestCase):
string1 = None
def test1(self):
self.string1 = "ValueAssignedFromMethod1"
print "Test1 :"
print self.string1
def test2(self):
print "\nTest 2 :"
print self.string1
if __name__ == "__main__":
unittest.main()
上述代码的输出如下:
Test1 :
ValueAssignedFromMethod1
Test 2 :
None
如何在所有方法中使用相同的“string1”变量&如果在一种方法中改变了值,它也应该在其他方法中可用吗?
在我的项目中,我有以下场景:[使用Python + Selenium Webdriver +页面对象模式+ UnitTest库]
class Test(unittest.TestCase):
def redirectToFalconHostUI(self):
#Start GOOGLE CHROME Browser
self.browser = webdriver.Chrome(executable_path='E:\\chromedriver.exe')
#Navigate to Website URL
Site_Home = Home(self.browser)
Site_Home.navigate()
def testloginToWebsite(self):
#Get Logged in the Falcon Web UI
loginPage = Site_Home.getLoginForm()
loginPage.enter_email(SINGLE_LOGIN_USERNAME)
loginPage.enter_password(SINGLE_LOGIN_PASSWORD)
Profile_Home = loginPage.get_logged_into_Site()
def testProfilePageSection(self):
Profile_home.go_to_Section1()
如何在所有下一个unittest方法中获取Browser的Webdriver的当前状态。
在一种方法中设置的页面对象在下一个方法中不可用。
答案 0 :(得分:1)
以setUp方法分配变量。这将在每个测试用例运行之前进行初始化。
import unittest
class Test(unittest.TestCase):
def setUp(self):
self.string1 = "ValueAssignedFromMethod1"
def test1(self):
print "Test1 :"
print self.string1
def test2(self):
print "\nTest 2 :"
print self.string1
if __name__ == "__main__":
unittest.main()
如果您希望在整个测试套件中完成一次工作,那么您可以使用setUpClass。您可以将您感兴趣的成员分配给该课程,并且可以跨方法访问这些成员。
答案 1 :(得分:0)
class Test(unittest.TestCase):
Site_Home = None
Profile_Home = None
def redirectToFalconHostUI(self):
#Start GOOGLE CHROME Browser
self.browser = webdriver.Chrome(executable_path='E:\\chromedriver.exe')
#Navigate to Website URL
Test.Site_Home = Home(self.browser)
Test.Site_Home.navigate()
def testloginToWebsite(self):
#Get Logged in the Falcon Web UI
loginPage = Test.Site_Home.getLoginForm()
loginPage.enter_email(SINGLE_LOGIN_USERNAME)
loginPage.enter_password(SINGLE_LOGIN_PASSWORD)
Test.Profile_Home = loginPage.get_logged_into_Site()
def testProfilePageSection(self):
Test.Profile_home.go_to_Section1()
通过具有类级别对象,可以在Same类中的所有方法中访问它。 https://docs.python.org/2/tutorial/classes.html