unittest运行正常,改为python运行就报错

来源:5-7 项目中以文件的形式实现数据驱动

weixin_慕盖茨6079856

2021-10-15

@ddt.ddt
class FirstDdtCase(unittest.TestCase):
ex = ExcelUtil()
data = ex.get_data()
def setUp(self):
self.driver = webdriver.Chrome()
self.driver.get(‘http://www.5itest.cn/register’)
self.login = RegisterBusiness(self.driver)

def tearDown(self):
    time.sleep(2)
    #if sys.exc_info()[0]:
    for method_name,error in self._outcome.errors:
          if error:
              case_name = self._testMethodName
              file_path = os.path.join(os.getcwd()+"/report/"+case_name+".png")
              self.driver.save_screenshot(file_path)
    #print("这个是case的后置调键1")
    self.driver.close()

# @ddt.data(
#         ['12','Mushishi01','111111','code.png','user_email_error','请输入有效的电子邮件地址'],
#         ['@qq.com','Mushishi01','111111','code.png','user_email_error','请输入有效的电子邮件地址'],
#         ['12@qq.com','Mushishi01','111111','code.png','user_email_error','请输入有效的电子邮件地址']
#     )
# @ddt.unpack

# @ddt.data(*data)
@ddt.data(*data)
def test_register_case(self,data):
    email,username,password,self.file_name,assertCode,assertText = data
    email_error = self.login.register_function(email,username,password,self.file_name,assertCode,assertText)
    self.assertFalse(email_error,"测试失败")

if name == ‘main’:
file_path = os.path.join(
os.path.abspath(os.path.dirname(os.path.dirname(file))) + “\report\” + “first_case1.html”)
print(file_path)
f = open(file_path,‘wb’)
suite = unittest.TestLoader().loadTestsFromTestCase(FirstDdtCase)
runner = HTMLTestRunner(stream=f,title=“This is first report1”,description=u"这个是我们第一次测试报告1",verbosity=2)
runner.run(suite)

图片描述图片描述

写回答

1回答

weixin_慕盖茨6079856

提问者

2021-10-15

error

[x]

        ft1.1: Traceback (most recent call last):
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python38\lib\site-packages\ddt.py", line 182, in wrapper
    return func(self, *args, **kwargs)
  File "G:/demo/coding-269/case/first_ddt_case.py", line 53, in test_register_case
    email_error = self.login.register_function(email,username,password,self.file_name,assertCode,assertText)
  File "G:\demo\coding-269\business\register_business.py", line 30, in register_function
    self.user_base(email,username,password,file_name)
  File "G:\demo\coding-269\business\register_business.py", line 8, in user_base
    self.register_h.send_user_email(email)
  File "G:\demo\coding-269\handle\register_handle.py", line 16, in send_user_email
    self.register_p.get_email_element().send_keys(email)
  File "G:\demo\coding-269\page\register_page.py", line 9, in get_email_element
    return self.fd.get_element("user_email")
  File "G:\demo\coding-269\base\find_element.py", line 11, in get_element
    data = read_ini.get_value(key)
  File "G:\demo\coding-269\util\read_ini.py", line 26, in get_value
    data = self.cf.get(self.node,key)
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python38\lib\configparser.py", line 781, in get
    d = self._unify_values(section, vars)
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python38\lib\configparser.py", line 1149, in _unify_values
    raise NoSectionError(section) from None
configparser.NoSectionError: No section: 'RegisterElement'
Traceback (most recent call last):
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python38\lib\site-packages\ddt.py", line 182, in wrapper
    return func(self, *args, **kwargs)
  File "G:/demo/coding-269/case/first_ddt_case.py", line 53, in test_register_case
    email_error = self.login.register_function(email,username,password,self.file_name,assertCode,assertText)
  File "G:\demo\coding-269\business\register_business.py", line 30, in register_function
    self.user_base(email,username,password,file_name)
  File "G:\demo\coding-269\business\register_business.py", line 8, in user_base
    self.register_h.send_user_email(email)
  File "G:\demo\coding-269\handle\register_handle.py", line 16, in send_user_email
    self.register_p.get_email_element().send_keys(email)
  File "G:\demo\coding-269\page\register_page.py", line 9, in get_email_element
    return self.fd.get_element("user_email")
  File "G:\demo\coding-269\base\find_element.py", line 11, in get_element
    data = read_ini.get_value(key)
  File "G:\demo\coding-269\util\read_ini.py", line 26, in get_value
    data = self.cf.get(self.node,key)
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python38\lib\configparser.py", line 781, in get
    d = self._unify_values(section, vars)
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python38\lib\configparser.py", line 1149, in _unify_values
    raise NoSectionError(section) from None
configparser.NoSectionError: No section: 'RegisterElement'

报告里面显示这个报错,但是我运行了下脚本又是没问题的

0
8
Mushishi
回复
weixin_慕盖茨6079856
你获取当前工程路径的方法不对,这个可以百度一下。你应该时通过get cwd的方式
2021-10-18
共8条回复

Selenium3与Python3实战Web自动化测试框架

打破无项目经验、无框架经验瓶颈,实战Web自动化测试框架!

1883 学习 · 1093 问题

查看课程