0

我正在使用 Telenium 来自动化 kivy 应用程序的测试。 https://github.com/tito/telenium/blob/master/README.md

def enable_server():
    def start_server():
        os.system('python server.py')

    t1 = threading.Thread(target=start_server, daemon=True)
    t1.start()

我的 Telenium 测试用例骨架看起来像这样。

class UITestCase(TeleniumTestCase):
    cmd_entrypoint = [" main.py"]

    def first_test(self):
         """code to test"""

    def second_test(self):
         enable_server()
         """code to test"""


    def third_test(self):
         enable_server()
         """code to test"""

由于两个测试需要 enable_server() 应用程序没有完全执行 third_test 并失败。我不确定为什么会这样。

错误:

Traceback (most recent call last):
  File "node_sim.py", line 63, in <module>
    loop.run_until_complete(start_server)
  File "/home/user/.pyenv/versions/3.7.3/lib/python3.7/asyncio/base_events.py", line 584, in run_until_complete
    return future.result()
  File "/home/user/.pyenv/versions/3.7.3/lib/python3.7/asyncio/tasks.py", line 603, in _wrap_awaitable
    return (yield from awaitable.__await__())
  File "/home/user/.pyenv/versions/3.7.3/lib/python3.7/site-packages/websockets/legacy/server.py", line 1071, in __await_impl__
    server = await self._create_server()
  File "/home/user/.pyenv/versions/3.7.3/lib/python3.7/asyncio/base_events.py", line 1378, in create_server
    % (sa, err.strerror.lower())) from None
OSError: [Errno 98] error while attempting to bind on address ('0.0.0.0', 5000): address already in use
4

1 回答 1

0

你应该enable_server输入init方法。它将在每个 UITestCase 之前运行。

每个新的 TeleniumTestCase 都会关闭并启动应用程序,因此您始终从干净的应用程序运行。如果你在开始测试之前总是需要做一些事情,你可以重载 init。这将在类中的任何测试开始之前执行一次:

文档

于 2021-07-30T04:58:09.117 回答