一个python3库,用于评估EnergyPlus构建之间的回归。

EnergyPlusRegressionTool的Python项目详细描述


EnergyPlus回归

Documentation StatusBuild StatusCoverage Status

概述

这个库提供了在EnergyPlus构建之间执行回归的工具。 开发人员经常建议对EnergyPlus进行以下更改:

  • 新功能开发
  • 缺陷修复
  • 重构结构或性能

当开发人员提出这些更改时,必须在将这些代码更改接受到主分支之前对其进行测试。 持续集成系统运行测试并提供结果,但有时会有很长的延迟等待这些结果,这取决于系统当时有多忙。 这组工具提供了在本地运行这些回归的方法。在

使用

这个工具适用于所有三个主要平台:Windows、Mac和ubuntults(18.04和20.04)。 Travis在所有的平台上运行测试,并且经常在这三个平台上使用。在

安装此工具有两种方法:

  • 下载预构建(由Travis编写)的二进制软件包
    • 从Github发行版page下载。在
    • 用户不需要任何额外的工具,包括Python本身。在
    • 应该提取下载的包,然后直接运行提取的二进制文件。在
  • Pypi将库安装到现有的Python安装中
    • 使用Pip(pip install energyplusregressiontool)下载。在
    • 显然,用户将需要现有的Python安装,但是其他依赖项由Pip自动安装。在
    • 一旦安装到Python安装中,就可以运行一个二进制文件:eplus_regression_runner。在

限制

不过,这里也有一些限制。在此之前的几句话:

  • 当我们创建独立安装程序时,我们使用pyinstallerfreeze程序和所有依赖项。在
  • 当我们运行EnergyPlus时,我们必须在多个进程中运行,而不仅仅是多个线程,因为EnergyPlus本身的线程不安全。在

这两个因素的结合有一个问题,导致该程序在Windows和Mac上不能很好地工作。 如果尝试冻结程序,但使用多处理库创建子实例,则失败。 网上有一些关于如何通过在代码入口调用特殊函数来解决这个问题的注释,但是我不能让它们完全工作。 所以现在,如果你在Windows或Mac上使用冻结的可下载版本,它不会在多个进程中运行EnergyPlus。在

但是,如果您使用Pip将库安装到Python安装中,则该程序永远不会使用pyinstaller冻结,而且即使使用多处理,跨平台的程序似乎也能正常工作。 最好的安装路径是以这种方式运行,但是如果不能,您可以下载冻结版本,现在只接受单个进程。在

发展

对于设置开发环境以在此工具上执行work,步骤非常简单:

  • 如果需要,请安装Python
  • 克隆此存储库(git clone https://github.com/NREL/EnergyPlusRegressionTool
  • 安装依赖项(pip3 install -r requirements.txt

文件

程序文档,包括用户指南和典型工作流,可在文档中找到。 {a6}和Sphinx一起出版。在

测试

详尽的单元测试已经添加到“底层”代码中,比如计算差异和运行构建的函数。 单元测试由Travis运行。 GUI代码不是单元测试的,而是在所有平台上例行测试的。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java未从Facebook OAuth接收名字、姓氏和姓氏   我自己代码中的java ConcurrentModificationException   java在Android上获得单像素TIFF图像   java图形输出中的swing集成弹出窗口“通知”   将数据库表中的所有数据集插入jTable Java   java如何使用Hibernate获取不完整的集合?   打印无法从java连接到打印机   java使用分隔符拆分带引号的字符串   java Axis2禁用严格验证(wsdl2java中的Eosv)允许什么,如何使其更加严格?   java有人能帮我处理循环代码吗   java将JsonObject数组转换为整数   JavaXWiki扩展:检测事件空间创建   java如何设置图表的文本方向以使用poi旋转所有文本?   eche RecyclerView项的java Set自定义字体   java单元测试带有私有构造函数的spring组件,无需注入   用户界面如何在java中动态显示一组多个元素?   如何从java应用程序调用IDL(交互式数据语言)?   Java的内置库实现