conda build - 添加大量测试数据的推荐方法
conda build - recommended way to add heavy test data
我正在为一个测试套件需要大量测试数据(~50MB)的软件开发一个 conda 包
conda documentation indicates 如何使用配方中包含的测试数据。当测试数据很大时,我想最好是即时下载它们而不是将数据包含在配方中,但是在 meta.yml 中声明它的最佳方式是什么?数据存档的下载和提取应该在 build.sh 还是其他地方完成?
我建议将测试数据列为附加 source
下载。
大多数 conda 配方仅从单一来源 tarball(或 git 存储库等)下载,但如有必要,允许配方列出多个来源,所有来源均已下载。这是一个简单的例子:
{% set name = "foo" %}
{% set version = "0.1" %}
package:
name: {{ name|lower }}
version: {{ version }}
source:
# Main source code
- url: http://example.com/yada/yada/foo-{{ version }}.tar.gz
sha256: 90e64c6eca4be47bbf1d61f53dc003c6621213738d4ea7a35e5cf1ac2de9bab1
# Also download test data into a folder named 'test-data'
- url: http://example.com/yada/yada/my-test-data.tar.gz
sha256: 3b9c5e0f09ca14a54454319b64af98a02d0ae1b3eb1122c95e2130736f440cd1
folder: test-data
build:
number: 0
requirements:
# etc, etc, ...
test:
source_files:
- test-data
commands:
- run_my_tests --data-dir=test-data
备注:
提供一个 folder
名称以指定您的附加源应在 work
目录中的什么位置解压。否则,它将在work
目录的根目录下解压,就像第一个源一样。
work
目录在测试阶段开始之前被删除,因此您需要在 test:source_files:
部分列出您的测试数据目录以确保它被复制到执行测试的文件夹。
我正在为一个测试套件需要大量测试数据(~50MB)的软件开发一个 conda 包 conda documentation indicates 如何使用配方中包含的测试数据。当测试数据很大时,我想最好是即时下载它们而不是将数据包含在配方中,但是在 meta.yml 中声明它的最佳方式是什么?数据存档的下载和提取应该在 build.sh 还是其他地方完成?
我建议将测试数据列为附加 source
下载。
大多数 conda 配方仅从单一来源 tarball(或 git 存储库等)下载,但如有必要,允许配方列出多个来源,所有来源均已下载。这是一个简单的例子:
{% set name = "foo" %}
{% set version = "0.1" %}
package:
name: {{ name|lower }}
version: {{ version }}
source:
# Main source code
- url: http://example.com/yada/yada/foo-{{ version }}.tar.gz
sha256: 90e64c6eca4be47bbf1d61f53dc003c6621213738d4ea7a35e5cf1ac2de9bab1
# Also download test data into a folder named 'test-data'
- url: http://example.com/yada/yada/my-test-data.tar.gz
sha256: 3b9c5e0f09ca14a54454319b64af98a02d0ae1b3eb1122c95e2130736f440cd1
folder: test-data
build:
number: 0
requirements:
# etc, etc, ...
test:
source_files:
- test-data
commands:
- run_my_tests --data-dir=test-data
备注:
提供一个
folder
名称以指定您的附加源应在work
目录中的什么位置解压。否则,它将在work
目录的根目录下解压,就像第一个源一样。work
目录在测试阶段开始之前被删除,因此您需要在test:source_files:
部分列出您的测试数据目录以确保它被复制到执行测试的文件夹。