我使用pytest和selenium。当我尝试运行我的测试脚本时:
import pytest
from selenium import webdriver
from pages import *
from locators import *
from selenium.webdriver.common.by import By
import time
class RegisterNewInstructor:
def setup_class(cls):
cls.driver = webdriver.Firefox()
cls.driver.get("http://mytest.com")
def test_01_clickBecomeTopButtom(self):
page = HomePage(self.driver)
page.click_become_top_button()
self.assertTrue(page.check_instructor_form_page_loaded())
def teardown_class(cls):
cls.driver.close()
显示的信息是:没有测试在0.84秒内运行
有人可以帮助我进行这个简单的测试吗?
答案 0 :(得分:15)
根据pytest
test conventions,您的类应以Test
开头,以便由测试发现机制自动获取。改为称呼TestRegisterNewInstructor
。
或者,继承unittest.TestCase
:
import unittest
class RegisterNewInstructor(unittest.TestCase):
# ...
另请注意,.py测试脚本本身必须以其文件名中的test_
开头。
答案 1 :(得分:0)
你自己执行了这个课吗?我在这段代码中没有看到您显示您要调用要运行的类或定义。
例如,在python中运行这样的类或定义:
class Hello():
# __init__ is a definition runs itself.
def __init__(self):
print('Hello there')
# Call another definition.
self.andBye()
# This definition should be calles in order to be executed.
def andBye(self):
print('Goodbye')
# Run class
Hello()
答案 2 :(得分:0)
尝试在setUP和tearDown顶部添加@classmethod。