【问题标题】:create and use temporary directory in tox在 tox 中创建和使用临时目录
【发布时间】:2021-09-08 17:58:02
【问题描述】:

我正在寻找一种可靠的方法来生成和使用临时的一次性文件夹,作为 tox 环境创建的一部分。

[testenv:var-test]
description = Try to store output of a shell command
tmpdir = mktemp -d
commands =
    echo {[testenv:var-test]tmpdir}
    # prints "mktemp -d" (command is not run)
    
    tmpdir = mktemp -d
    # ERROR: InvocationError for command could not find executable tmpdir

【问题讨论】:

    标签: tox temporary-directory


    【解决方案1】:

    可能有更好的方法,但您当然可以从命令部分调用 bash 脚本。

    tox.ini

    [testenv]
    whitelist_externals = bash
    commands =
        bash {toxinidir}/commands.sh
    

    commands.sh

    TEMP=`mktemp -d`
    echo $TEMP
    

    tox 运行的输出

    ❯ tox
    python run-test-pre: PYTHONHASHSEED='562823002'
    python run-test: commands[0] | bash /home/jugmac00/stackOverflow/commands.sh
    /tmp/tmp.snc2T0Fa6W
    _________________________________________________________ summary __________________________________________________________
      python: commands succeeded
      congratulations :)
    

    【讨论】:

    • 如何在 tox testenv 中使用$TEMP 的值?只需创建一个文件夹也可以使用sh -c 'mktemp -d'实现。
    • 嗯,对sh 的内联调用和调用 bash 脚本之间存在很大差异,因为在 bash 脚本中您可以使用输出。我认为您需要更具体地说明您想要做什么,因为您可以放例如bash 脚本中的第二个命令以重用 tempdir。您究竟想在哪里使用 tempdir?在命令部分之外?
    • 我想在命令部分使用 tempdir,您将所有内容委托给外部脚本的建议是可行的。 +1
    猜你喜欢
    • 2010-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-23
    • 1970-01-01
    • 2015-01-30
    相关资源
    最近更新 更多