【问题标题】:How to pass the -D System properties while testing on Eclipse?在 Eclipse 上测试时如何传递 -D 系统属性?
【发布时间】:2010-10-26 03:10:02
【问题描述】:

我正在 Windows 上的 Eclipse 上进行开发,代码被部署在 Unix 上。我正在使用 System.getProperty("key") 获取系统属性值...如何在 Eclipse 中传递它,这样我就不必修改代码并且它可以在 Eclipse 上进行调试?

有什么建议吗?

【问题讨论】:

    标签: java eclipse


    【解决方案1】:

    运行 -> 运行配置,选择项目,第二个选项卡:“参数”。顶框用于您的程序,底框用于 VM 参数,例如-Dkey=value.

    【讨论】:

    • 如果您正在尝试运行 Android 应用程序,这是在哪里?
    • 为什么我必须使用'D'作为前缀?
    • 如果你和我一样粗壮——-D 参数放在 bottom 框中的 VM 参数不是 b> 在程序参数的顶部框中。 /叹息
    • 顶框是传递给main方法的String[] args
    • 有没有什么办法可以让这个默认发生,这样就不用手动重复输入很多测试了?
    【解决方案2】:

    您可以使用 java System.properties,在 eclipse 中使用它们可以:

    1. 在测试Run Configuration 的VM 参数中添加-Dlabel="label_value",如下所示:

    1. 然后运行测试:

      import org.junit.Test;
      import static org.junit.Assert.assertEquals;
      
      public class Main {
          @Test
          public void test(){
              System.out.println(System.getProperty("label"));
              assertEquals("label_value", System.getProperty("label"));
          }
      }
      
    2. 最终它应该通过测试并在控制台中输出:

      label_value
      

    【讨论】:

      【解决方案3】:

      您可以在运行配置中添加命令行参数。只需编辑运行配置并将 -Dmyprop=value(或其他)添加到 VM Arguments Box。

      【讨论】:

      • 如果您在“参数”选项卡下说“命令行参数框”时指的是“程序参数框” - 不起作用!必须在上面 Bombe 提到的“VM Arguments Box”中输入。
      【解决方案4】:

      这适用于junit。对于 TestNG 使用以下命令

      -ea -Dmykey="value" -Dmykey2="value2"
      

      【讨论】:

        【解决方案5】:

        是的,就是这样:

        右击你的程序,选择运行->运行配置 然后在 vm 参数上

        -Denv=EnvironmentName -Dcucumber.options="--tags @ifThereisAnyTag"
        

        然后就可以申请关闭了。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2016-11-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-02-19
          相关资源
          最近更新 更多