【TestCase】No tests found in

背景:看了TestCase类,打算写个例子,结果报No tests found in和TestSuite的错误。搜索找到一篇解决了这个问题,见参考链接。

参考该文章,把想用于测试的方法改名(以test开头),setName方法中也要同步修改。附上正确的代码如下:

package comsVali;
import junit.framework.TestCase;
public class test extends TestCase {
//    TestSuite t = new TestSuite("hi");
    @Override
    protected void setUp() {
        setName("testPrint");
    }
    public void testPrint(){
        System.out.println(System.getProperty("java.class.path"));
    }
}

PS:会报TestSuite的错,以及需要以固定的test开头,我的这篇文章讲了TestSuite会寻找待测试类为为public且为test开头的方法。

参考链接一中是以@Test标记了待测方法,我的例子中与它等价的是setUp()。

参考链接:

https://blog.csdn.net/u012997311/article/details/52134836

 

### 使用 Python 编写 Selenium 测试代码的示例 以下是基于提供的引用内容以及专业知识编写的关于如何使用 Python 和 Selenium 进行 Web 自动化测试的详细说明。 #### 1. 基础环境准备 为了运行 Selenium 脚本,需要安装必要的依赖库和配置浏览器驱动程序。可以通过 `pip` 安装 Selenium 库: ```bash pip install selenium ``` 还需要下载对应浏览器的 WebDriver 并将其路径设置到系统环境中或者直接指定路径[^2]。 --- #### 2. 示例代码结构 下面是一个完整的 Selenium 测试框架实例,展示了如何创建一个单元测试类来自动打开网页、执行操作并关闭浏览器。 ```python import unittest from selenium import webdriver from selenium.webdriver.common.keys import Keys from selenium.webdriver.common.by import By from selenium.webdriver.chrome.service import Service class SearchTest(unittest.TestCase): def setUp(self): """初始化浏览器""" service = Service('path/to/chromedriver') # 替换为实际 chromedriver 的路径 self.driver = webdriver.Chrome(service=service) print("Browser Initialized") def test_search_in_google(self): """测试在 Google 上搜索关键字 'Python' """ driver = self.driver driver.get("https://www.google.com") # 访问目标网站 search_box = driver.find_element(By.NAME, "q") # 寻找搜索框元素 search_box.clear() # 清除默认文本 search_box.send_keys("Python") # 输入关键词 search_box.send_keys(Keys.RETURN) # 提交查询 assert "No results found." not in driver.page_source # 验证是否有结果返回 print("Search Completed Successfully!") def tearDown(self): """清理资源""" self.driver.quit() print("Closed Browser") if __name__ == "__main__": unittest.main() ``` 此代码片段实现了以下功能: - 初始化 Chrome 浏览器实例。 - 执行特定的操作(访问 Google 页面并通过其搜索引擎查找 “Python”)。 - 断言验证是否存在预期的结果。 - 结束后释放所有分配给该会话的资源[^1]。 --- #### 3. 日志记录集成 对于更复杂的项目来说,加入日志管理是非常重要的一步。这里提供了一个简单的方法来自定义日志输出方式[^5]: ```python import logging def setup_logger(): """配置全局日志处理器""" logger = logging.getLogger(__name__) logger.setLevel(logging.DEBUG) file_handler = logging.FileHandler('./test.log') console_handler = logging.StreamHandler() formatter = logging.Formatter( '%(asctime)s - %(levelname)s - %(message)s' ) file_handler.setFormatter(formatter) console_handler.setFormatter(formatter) logger.addHandler(file_handler) logger.addHandler(console_handler) return logger LOGGER = setup_logger() class LogEnabledTestCase(unittest.TestCase): @classmethod def setUpClass(cls): global LOGGER cls.logger = LOGGER cls.logger.info("Starting Tests...") @classmethod def tearDownClass(cls): cls.logger.info("All tests completed.") ``` 通过这种方式可以在每次调用时打印调试信息至终端同时也保存一份副本于本地文件中以便后续分析。 --- #### 4. 等待机制优化 当处理动态加载的内容时,显式等待往往比隐式等待更加灵活可靠。例如,在上面的例子基础上增加一段针对某个条件成立前持续轮询直到超时为止逻辑如下所示[^3]: ```python from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC def wait_for_element(driver, by_type, locator, timeout=10): try: element_present = EC.presence_of_element_located((by_type, locator)) WebDriverWait(driver, timeout).until(element_present) except Exception as e: raise TimeoutError(f"Element {locator} did not appear within {timeout}s.") from e ``` 这样就可以避免因为网络延迟等原因造成误判的情况发生。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值