【问题标题】:Passing command line argument to SCons test将命令行参数传递给 SCons 测试
【发布时间】:2015-06-04 07:22:00
【问题描述】:

我有一个测试,叫它sometest,在 SCons 中注册,可以通过以下方式调用:

scons sometest.test

sometest 也需要命令行参数,即它寻找标志-beHappy,以在另一种模式下运行。

当我尝试使用以下方法调用测试时:

scons sometest.test -beHappy

我收到了来自 SCons 的一些警告:

Warning:  ignoring -e option
Warning:  the -W option is not yet implemented

然后它继续运行测试而不传递参数。

我试过了

scons sometest.test -beHappy
scons 'sometest.test -beHappy'

无济于事。

【问题讨论】:

    标签: scons


    【解决方案1】:

    我不使用 scons,但可能值得尝试旧的双连字符 --。许多 shell 使用它来禁用选项处理,将选项传递给底层脚本进行处理。

    scons sometest.test -- -beHappy

    来自 bash 的手册页:

    A -- 表示选项结束并禁用进一步的选项处理。 > -- 之后的任何参数都被视为文件名和参数。 - 的参数等价于 --。

    查看 bash 的 man 页面并搜索 -- 以获取更多信息。如果您使用另一个 shell,请务必同时查看该 shell 的手册页。

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      试试……

      scons sometest.test --beHappy
      

      超过一个字符的 SCons 选项以两个破折号 (-) 为前缀。

      了解 Scons 在后台使用 optparse 会很有帮助。

      当您输入 -beHappy 时,scons 将其读取为等效的 -b -e -H -a -p -p -y

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-04-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-09
        • 2017-10-22
        相关资源
        最近更新 更多