【发布时间】:2015-02-24 21:53:22
【问题描述】:
这听起来像是一个非常愚蠢的问题,但它是:
我正在用 python 编写 selenium 测试,基本上我的基本测试类如下所示:
chromedriver = "../selenium-tests/chromedriver"
os.environ["webdriver.chrome.driver"] = chromedriver
class TestsFoo(unittest.TestCase):
base_url = None
language = None
def setUp(self):
self.driver = webdriver.Chrome(chromedriver)
self.verificationErrors = []
self.accept_next_alert = True
self.driver.set_window_size(1100, 800)
然后我所有的其他测试类都从该类扩展。示例:
class TestsFooChild(TestsFoo):
def test_something(self):
driver = self.driver
driver.get("{}{}/myurl.html".format(
self.base_url,
self.language)
)
# do stuff
print driver.current_url
self.assertTrue(somethingTrue)
def tearDown(self):
self.driver.close()
self.driver.quit()
language 和 url 的定义是这样的:
if __name__ == "__main__":
TestsFoo.base_url = os.environ.get('URL')
TestsFoo.language = os.environ.get('LANGUAGE')
unittest.main()
所以对于一个非常非常小的问题,这是很多信息:
在进行单元测试时,如果您在某处放了print,则只有在测试失败时才会打印。
那为什么在我的情况下,无论测试结果如何,都会打印每个prints?我只想在测试失败时打印我的current_url。
另外,我只是在看看它为什么会这样。我正在积极寻找一种仅在测试失败时才打印它的方法。所以这部分得到了照顾。但我很好奇..
【问题讨论】:
标签: python testing selenium printing unit-testing