为什么我不能在另一个.py文件中使用一个.py文件中的方法?

2024-10-03 02:34:00 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的带有按钮的窗体代码:

import sys
from ClickerBot import test_ClikerBot

def func1():
    if sys.version_info < (3, 0):
        # Python 2
        import Tkinter as tk
    else:
        # Python 3
        import tkinter as tk
    root = tk.Tk()
    root.title(“Clicker”)

   def startClick():
        root.destroy()
        clicker = test_ClikerBot()
        clicker.test_clicker_bot()

   button1 = tk.Button(root, text=“CLICK CLICK CLICK”, command=startClick())
    button1.pack()
    tk.mainloop()

if __name__ == ‘__main__‘:
    func1()

启动此文件时,我收到下一个错误:

/System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7    /Users/ltst/Desktop/dev/DribbleBot/venv/Scripts/main.py
Traceback (most recent call last):
  File “/Users/ltst/Desktop/dev/DribbleBot/venv/Scripts/main.py”, line 23, in <module>
    func1()
  File “/Users/ltst/Desktop/dev/DribbleBot/venv/Scripts/main.py”, line 19, in func1
    button1 = tk.Button(root, text=“CLICK CLICK CLICK”, command=startClick())
  File “/Users/ltst/Desktop/dev/DribbleBot/venv/Scripts/main.py”, line 16, in startClick
    clicker = test_ClikerBot()
  File “/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/unittest/case.py”, line 191, in __init__
    (self.__class__, methodName))
ValueError: no such test method in <class ‘ClickerBot.test_ClikerBot’>: runTest

但在我的ClickerBot类中存在以下方法:

class test_ClikerBot(unittest.TestCase):    
   def test_clicker_bot(self):

问题出在哪里?我从catalog studio recorder导入了这段代码,并在一周前开始学习python,因为像magic和google这样的东西对我来说并不是每次都有用(抱歉英语不好)


Tags: inpytestimportmainrootuserstk
1条回答
网友
1楼 · 发布于 2024-10-03 02:34:00

如果test_ClikerBot类是普通类,那么代码就可以了。关键是unittest是一个非常特殊的框架,TestCase类并不打算直接使用,而是通过一个TestRunner和一个TestLoader来使用,这两个类都在幕后发挥了相当大的魔力。This is partly documented,但您可能需要阅读现有运行程序和加载程序的源代码,才能真正了解如何使整个过程正常工作。一个好的起点可能是文档中提到的已经存在的GUI testrunner:

The script Tools/unittestgui/unittestgui.py in the Python source distribution is a GUI tool for test discovery and execution

相关问题 更多 >