我正在为一个Python脚本构建一个测试程序,该脚本将与rejectdb数据库一起执行工作。作为setUp()方法的一部分,我试图让测试人员在端口28016上的localhost上启动RejectDB服务器,以防尚未启动。在

我用subprocess启动服务器。问题是,根据https://docs.python.org/2/library/subprocess.html,subprocess等待命令完成。在这种情况下,似乎只要服务器启动并运行,过程就不完整,测试也不会继续超过setUp()阶段。在

下面是我尝试的脚本:import unittest

import rethinkdb as r

import subprocess

class TestController(unittest.TestCase):

HOST = "localhost"

PORT_OFFSET = 1

PORT = 28015 + PORT_OFFSET

DB = "ipercron"

TABLE = "sensor_data"

def setUp(self):

try:

self.conn = r.connect(self.HOST, self.PORT)

except r.ReqlDriverError:

print("The RethinkDB server is not yet ready. Starting it up...")

subprocess.call(["rethinkdb", "--port-offset", str(TestController.PORT_OFFSET)])

self.conn = r.connect(self.HOST, self.PORT)

if TestController.DB not in r.db_list().run(self.conn):

r.db_create(TestController.DB).run(self.conn)

self.conn.use(TestController.DB)

if TestController.TABLE not in r.table_list().run(self.conn):

r.table_create(TestController.TABLE).run(self.conn) # Create the table if it does not yet exist

r.table(TestController.TABLE).delete().run(self.conn) # Empty the table to start with a clean slate

def test_upper(self):

self.assertEqual('foo'.upper(), 'FOO')

suite = unittest.TestLoader().loadTestsFromTestCase(TestController)

unittest.TextTestRunner(verbosity=2).run(suite)

subprocess用于在命令行执行rethinkdb --port-offset 1命令,然后继续执行脚本。但是,当我运行脚本时,会收到一条通常的消息:服务器已就绪:

^{pr2}$

没有任何进一步的行动。如何让unittest继续进行测试?在

python怎么启动服务器_如何在Python单元中从命令行启动服务器相关推荐

  1. springboot脚本启动bat_SpringBoot修改JVM参数(内置Tomcat命令行启动和IDEA工具配置修改)...

    命令行启动:(java [-options] -jar jarfile [args...]) 在 "-jar" 之前加上相应参数即可 java -Xms512m -Xmx512m ...

  2. python隐藏启动台_如何在Python中启动后台进程?

    如何在Python中启动后台进程? 我正在尝试将shell脚本移植到更易读的python版本. 原始shell脚本在后台使用"&"启动多个进程(实用程序,监视器等). 如何 ...

  3. python右对齐 数字_如何在Python中右对齐数值数据?

    我有一些数据,我显示在3列格式,形式"键:值键:键:值键:值".这里有一个例子: p: 1 sl: 10 afy: 4 q: 12 lg: 10 kla: 3 r: 0 kl: 1 ...

  4. python 指定证书验证_如何在python中验证SSL证书?

    我需要验证我的自定义CA签署了证书.使用OpenSSL命令行实用程序很容易做到: # Custom CA file: ca-cert.pem # Cert signed by above CA: bo ...

  5. python队列怎么用_如何在Python中使用多处理队列? - python

    我很难理解多处理队列如何在python上工作以及如何实现它.假设我有两个python模块,它们从共享文件中访问数据,我们将这两个模块称为writer和Reader.我的计划是让读取器和写入器都将请求放 ...

  6. python字符串筛选输出_如何在Python中过滤字符串列表

    Python使用列表数据类型在顺序索引中存储多个数据.它的工作方式类似于其他编程语言的数字数组.filter()方法是Python的一种非常有用的方法.可以使用filter()方法从Python中的任 ...

  7. python获取当前时间戳_如何在Python中获取当前时间戳?

    在Python中可以使用来自模块time.datetime或calendar的函数来获取当前时间戳,代码语句如[import time;ts = time.time() print(ts)]. 在Py ...

  8. python静态变量计数器_如何在Python中使用静态变量在计数

    今天,在用Python写一个统计一个文件下有多少文件的小标本时,遇到了一个很棘手的问题.如何在Python中使用静态变量来计数.然后,就在网上一通查找,找的方法都是利用类的方法来实现静态变量.说实话没 ...

  9. python列表元素求和_如何在python语言使用不同方法实现列表元素求和

    在使用python语言列表时,如果列表中的元素都是数值类型,可以对元素进行求和.下面利用不同的方法实现列表元素求和: 工具/原料 python pycharm 截图工具 方法/步骤 1 第一步,在已创 ...

最新文章

  1. DeepSpeed超大规模模型训练工具
  2. golang通过itemid获取zabbix graph监控图
  3. 推荐8个鲜为人知,但是很有意思的工具,简洁又好用!
  4. 如何在ActionScript 3中将“ Null”(真实的姓氏!)传递给SOAP Web服务
  5. 记录ASP.NET CORE 3 部署过程
  6. 创建WCF第一个应用程序
  7. 8-spark学习笔记-sparksql
  8. linux xorg.0.log,Red Hat无法登录,Cannot open log file /var/log/Xorg.0.log
  9. 在加州最古老的监狱教课是种什么样的体验?
  10. 如何定制日历控件显示的星期文字
  11. Leetcode每日一题:169.majority-element(多数元素)
  12. 英国政府寻求在2022年成为“全球性网络力量”
  13. UOS系统JAVA应用在任务栏显示类名的问题跟踪调用
  14. 684.冗余连接(力扣leetcode) 博主可答疑该问题
  15. linux红帽子7.5,Red Hat Enterprise Linux 7.5正式发布,功能增强
  16. ppt如何替换其他mo ban_一次性解决PPT初学者的20个常见问题,赶紧收藏
  17. VT是什么?怎么打开教程
  18. 资深 Googler 深度解读 TensorFlow
  19. 全网首发:12306抢票算法大曝光?(十张图搞定)
  20. cmd如何远程重启服务器

热门文章

  1. 隐马尔可夫模型,最大熵马尔可夫模型和条件随机场的区别与联系
  2. python自动给头像添加圣诞帽
  3. ubuntu 18.04 安装 中文 拼音 输入法
  4. 女性最容易动心的21种时刻
  5. 小米12系列获3C认证:120W快充终于回归
  6. 丁磊斩获400亿市值IPO,终于有钱买周杰伦了
  7. 三七互娱Q3归母净利润超预告上限,三大战略迎提速契机
  8. 被薅秃了!元气森林:损失近千万元 将为14.05万下单用户每人寄一箱白桃气泡水...
  9. 恒大和小米双双否认外界谣言,此前有人宣称小米将接手恒大造车
  10. LG电子成功进行太赫兹频段6G无线信号传输,距离超过100米