1

パラメータを unittest サブクラス メソッドに渡そうとしています。私の無知を許してください - 私は数日前に Python でコーディングを始めたばかりです。もちろん、サブクラス自体にパラメーターをハードコーディングすることもできますが、そうすると、他のユーザー名とパスワードの組み合わせでの再利用がなくなります。以下の run_tests.py を実行すると、「TypeError: runTest() は正確に 3 つの引数 (4 つ指定) を取ります」というエラーが表示されます。

ここに run_tests.py があります:

from selenium import webdriver
import unittest
from testcases import login


def my_suite():

    suite = unittest.TestSuite()
    suite.addTest (login.Login().runTest("username1", "password1", "page title"))
    return suite


if __name__ == '__main__':
    runner = unittest.TextTestRunner()
    runner.run(my_suite())

ここに testcases/basetestcase.py があります:

from selenium import webdriver
import unittest

class BaseTestCase (unittest.TestCase):

def setUp(self):
    self.driver = webdriver.Firefox()

    self.driver.implicitly_wait(30)
    self.base_url = "http://website"

def tearDown(self):
    self.driver.quit()

ここにtestcases/login.pyがあります

import common_page_elements
from basetestcase import BaseTestCase

class Login (BaseTestCase):
    def runTest(username, password, verification):
        """ Test logging in. """
        driver = self.driver
        driver.get(self.base_url)
        driver.find_element_by_id(common_page_elements.textfield_username).clear()
        driver.find_element_by_id(common_page_elements.textfield_username).send_keys(username)
        driver.find_element_by_id(common_page_elements.textfield_password).clear()
        driver.find_element_by_id(common_page_elements.textfield_password).send_keys(password)
        driver.find_element_by_name(common_page_elements.button_submit).click()        

        self.assertTrue(verification in self.driver.title)
4

1 に答える 1

3

runTestはクラス メソッドになっているため、引数を含める必要がありますself

class Login (BaseTestCase):
    def runTest(self, username, password, verification):
                ^^^^
于 2012-10-14T19:31:56.877 に答える