请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

每次运行suit里的测试方法时,运行完一个testcase,就会重启一下app,而且之后报错

  1. 我的driver代码如下:

    https://img1.sycdn.imooc.com//szimg/5b7ca07f0001a84611350457.jpg

  2. 登陆page页面代码如下:

    https://img1.sycdn.imooc.com//szimg/5b7ca0c1000122b706840425.jpg

  3. case页面代码如下:

    https://img1.sycdn.imooc.com//szimg/5b7ca2bb0001fc9f10920650.jpg

  4. 另外一个case的page页:

    https://img1.sycdn.imooc.com//szimg/5b7ca34f0001446e06110244.jpg

  5. case页面

    https://img1.sycdn.imooc.com//szimg/5b7ca399000146f509610629.jpg

  6. suit页代码:

    https://img1.sycdn.imooc.com//szimg/5b7ca3e6000151ea11290323.jpg


每次运行suit,登陆功能是成功的,但是登陆case执行完后,app就会重启(此时是已登陆状态),然后报错,信息如下:

https://img1.sycdn.imooc.com//szimg/5b7ca46b0001974a15330616.jpg

请老师帮忙解答下,是不是我driver封装的有问题?或者是我suit调用的有问题?

正在回答 回答被采纳积分+3

1回答

Mushishi 2018-08-22 13:02:59

你另外一个casehttps://img1.sycdn.imooc.com//szimg/5b7cee480001cf8c04110075.jpg 这个实例化时候的driver怎么来?你又去实例化driver?你需要把driver的实例化放在case层,然后传递进去。

0 回复 有任何疑惑可以回复我~
  • 提问者 无名_丁 #1
    你的意思是应该把我之前page页面的base_driver = BaseDriver()
            self.driver = base_driver.android_driver()这两行代码写在case层的setUpClass方法里,然后把driver再通过层层调用,传到page层里?那每个页面就都需要在setUpClass方法里写一遍那两行代码,然后把driver传进去?
    回复 有任何疑惑可以回复我~ 2018-08-22 14:16:38
  • Mushishi 回复 提问者 无名_丁 #2
    你的driver不应该是放在page层去实例化,而是应该放在case层,如果有多个page,那么你应该有一个base_case,你driver只能有一个地方实例化,然后传递到所有page页面去。
    回复 有任何疑惑可以回复我~ 2018-08-23 10:00:34
  • 提问者 无名_丁 回复 Mushishi #3
    1.我把driver的实例化写到suit里了,比如:
    suite = unittest.TestSuite()
    base_driver = BaseDriver()
    driver = base_driver.android_driver()
    tests = [LoginTest('test_success',parame=driver), LoginTest('test_user_error',parame=driver), MeTest('test_entry_me_page',parame=driver)]
    suite.addTests(tests)
    2.然后又单独创建了一个ParameTestCase类,代码如下:
        def __init__(self,methodName='runTest',parame=None):
            super(ParameTestCase,self).__init__(methodName)
            global parames
            parames = parame
    3.有两个页面,login页面和me页面
       login的case层部分代码如下:
          class LoginTest(ParameTestCase):
        @classmethod
        def setUpClass(cls):
            cls.business = LoginBusiness(parames)
      
       me页面case层的部分代码如下:
          class MeTest(ParameTestCase):
        @classmethod
        def setUpClass(cls):
            cls.meBusiness = MeBusiness(parames)
    
    但是,这两个case层的setUpClass方法里,parames都报错,This inspection detects names that should resolve but don't. Due to dynamic dispatch and duck typing, this is possible in a limited but useful number of cases. Top-level and class-level items are supported better than instance items
    请问是什么问题呢?
    回复 有任何疑惑可以回复我~ 2018-08-23 16:25:59
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信