这听起来可能是一个非常愚蠢的问题,但事实是:
我正在用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()
这是一个非常小的问题的大量信息:
在进行unittest时,如果将print
放在某个地方,则只有在测试失败时才会打印它。你知道吗
那么在我的例子中,为什么不管测试结果是什么,都要打印每个print
?我只想在测试失败时打印我的current_url
。你知道吗
还有,我只是想知道为什么会这样。我正在积极地寻找一种只有在测试失败时才打印出来的方法。所以那部分已经处理好了。但我很好奇。。你知道吗
我几乎从不单独使用
unittest
,但据我所知,print
导致输出到控制台是unittest
的默认行为。下面是一个示例文件:如果您将它另存为
test.py
并与python test.py
一起运行,您将在控制台上打印Foo
。你知道吗但是,如果您使用这样的nose运行它
nosetests test.py
(甚至只是在文件所在的目录中nosetests
),您将不会在控制台上看到Foo
。您必须用-s
或nocapture
运行它才能看到Foo
。你知道吗相关问题 更多 >
编程相关推荐