Selenium python,unittest 测试结果总是 Ran 0 tests in 0.000s

白丽妮 · 2017年11月26日 · 最后由 xiaocaijimimi 回复于 2019年09月29日 · 2857 次阅读
#test_baidu.py
from selenium import webdriver
from time import sleep
import unittest
class TestBaidu(unittest.TestCase):
    def setUp(self):
        self.driver=webdriver.Firefox()
        self.driver.implicitly_wait(30)
        self.driver.get("https://www.baidu.com/")
    def test_bai(self):
        driver=self.driver
        driver.find_element_by_id("kw").clear()
        driver.find_element_by_id("kw").send_keys("selenium")
        driver.find_element_by_id("su").click()
        sleep(3)
        title=driver.title
        self.assertEqual(title,"selenium_百度搜索")
        driver.find_element_by_partial_link_text("selenium自动化").click()
        sleep(3)
    def tearDown(self):
        self.driver.quit()
if __name__=="__main__":
    unittest.main()

runtest.py
import unittest

test_dir = "./"
deriver = unittest.defaultTestLoader.discover(test_dir,pattern="tset*.py")
if __name__=="__main__":
    runner = unittest.TextTestRunner()
    runner.run(deriver)

测试结果
Ran 0 tests in 0.000s

OK
本以为电脑问题,更换电脑安装软件后相同代码,结果还是这个,不知问题出在哪里,求解决

共收到 25 条回复 时间 点赞
deriver = unittest.defaultTestLoader.discover(test_dir,pattern="tset*.py")  

pattern="tset*.py" ????

学习 markdown 排版吧

deriver print 出来看看

chen 回复

打印出来是空的

煎饼 回复

pattern="tset*.py" 不是匹配所有以 test 开头的 py 文件么,我这是只有一个文件,也能写成 pattern="tset_baidu.py"的吧

今天又换了个电脑,win10 系统,python 用的 3.5.4 的,结果成功了,之前有问题的 win10,和 win7 都用的 python3.6 的,不知道是不是版本的问题,还有待试验一下

白丽妮 回复

替换成 python3.5.4 的版本,结果还为 0,😳

白丽妮 回复

那就你写的路径有问题,test_baidu.py 没 load 到。你先用绝对路径试试。
PS:liunx 和 window 路径格式不是一样。

chen 回复

写地址的时候\t 为啥会变色,改后还是不能运行

18楼 已删除
白丽妮 回复

单个反斜杠表示转义,需要双反斜杠表示反斜杠。

建议先看下 python 简明教程,熟悉一下一些基础概念,要不磕碰会比较多。

白丽妮 回复

哎~~首先你基础要补补啊,把 t 去掉怎么可能找的到 test_baidu.py

陈恒捷 回复

如果因为转义,为什么只有\t 的时候变色,而且双斜杠和双反斜杠,单斜杠,单反斜杠都试过,结果都不对,而且双反斜杠的时候是错的

chen 回复

我是把文件名字都改了啊,又不是傻到那种程度,使用 debug 跑的,出现一些问题

删除了原来的 pyc 文件,也是不行

白丽妮 回复

这个 debug 错误,我是帮不了你, 不过你可以用

import os
print(os.getcwd())

看看能获取到什么样的路径。
还可以看看这篇文章Python 在 Windows 环境下处理文件路径问题最佳实践

chen 回复

感谢帮助👍
我在试一试其他的方法

给你加了 markdown 语法,这样看着舒服点~
下次记得自己加~不加读起来太费眼睛~

楼主代码上没有太大的问题。我猜测是你是不是没有建立工程,只是在文件夹下面创建的 py 文件??
我特意用你的代码跑了一遍,可以执行的。只不过有报错,要去掉显示等待 30 秒那句话就好。
另外,路径可以用 os.path.join 来拼接,会更可靠一些。建议,仅供参考

不过我试过删除掉 init.py,只保留文件夹和 py 文件,执行也是没有问题的。实在不行,可以考虑换一种 case 加载方式。testunit.addTest(unittest.makeSuite(testclassName))

感谢,舒服多了👍 😁

donly 回复

我换了个电脑,就好用了,这个是直接创建文件夹,新建 py 文件的,

白丽妮 回复

尽量在 pycharm 里面新建工程,新建 package,再新建 py 文件吧。

donly 回复

嗯嗯😊

donly 回复

新建了工程,新建 package,真的就好使了😳 之前没有新建 package,是新建 directory

donly 回复

但是另一个电脑就是新建的 directory,也是好使的

白丽妮 回复

那可能是环境配置的问题?这个我也不知道了。。

我学这段的时候 unittest.main() 这样执行时,Test 0。改成 unittest.main,就可以了。具体是什么原因,我猜测是()里面需要把测试对象写进去。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册