我对Python unittest.TestCase
类进行了自定义专门化,该类包括自动日志记录并提供了可用于大量自定义测试场景的自定义业务验证方法。
我需要Python的unittest.TestCase.fail(...)的自定义版本,该版本可以与记录器使用相同的消息字符串,而不是格式化程序。
我想避免这样定义消息字符串的两个版本:
def verifySomething(self, p_one:str, p_two:str):
if self.someClass.some_command():
self.test_result = TestResult.PASSED
message = "my custom message : %s and %s - %s"
self.logger.info(message, p_one, p_two, self.test_result)
else:
self.test_result = TestResult.FAILED
message = "my custom message : {} and {} - {}".format(p_one, p_two, self.test_result)
self.fail(message)
...而是执行类似的操作
def verifySomething(self, p_one:str, p_two:str):
message = "my custom message : %s and %s - %s"
if self.someClass.some_command():
self.test_result = TestResult.PASSED
message = "my custom message : %s and %s - %s"
self.logger.info(message, p_one, p_two, self.test_result)
else:
self.test_result = TestResult.FAILED
self.fail(message, p_one, p_two, self.test_result)
注意:这是一个简化的示例,为简洁起见,我省略了“前提条件”。
摘要:如何编写一个覆盖Python的unittest.TestCase.fail(...)的自定义失败函数来做到这一点?
答案 0 :(得分:1)
我只是预先格式化消息:
class ReusableMethods{
public void setWindowSize(WebDriver driver,int x, int y){
Dimension d = new Dimension(x,y);
driver.manage().window().setSize(d);
}
public void sameCodeMethod(){
"samecode here"
}
public boolean windowSizeAssertion(WebDriver driver, int x,int y){
int height = dirver.manage().window().getHight();
int width = dirver.manage().window().getWidth();
if((height==x)&&(width==y)){
return true;
}
else{
return false;
}
}
}
class TestNGTest extends ReusableMethods{
@Test(priority = 0)
public void pc {
driver.manage().window().maximize();
samecodeMethod();
}
@Test(priority = 1)
public void smartphone {
setWindowSize(driver,100,200);
samecodeMethod();
Asset.assertTrue(windowSizeAssertion(driver,100,200));
}
}
不要求您利用def verifySomething(self, p_one:str, p_two:str):
if self.someClass.some_command():
self.test_result = TestResult.PASSED
display_func = self.logger.info
else:
self.test_result = TestResult.FAILED
display_func = self.fail
message = "my custom message: {} and {} - {}".format(p_one, p_two, self.test_result)
display_func(message)
的能力为您编写最终字符串。