【问题标题】:Java - having to test many inputs manuallyJava - 必须手动测试许多输入
【发布时间】:2015-12-03 19:59:04
【问题描述】:

我正在使用 eclipse 并且需要为我的应用程序测试许多文件。这意味着,对于大约 30 个不同的测试文件,我必须转到:“运行 -> 运行配置 -> 参数”,更改它们并重新运行。

有没有更快的方法来做到这一点? 我用谷歌搜索了java自动化测试。只是需要一些指导,我有点困惑。

谢谢 丹尼尔

【问题讨论】:

  • 你不能把参数放在属性文件里吗?所以启动配置将只是一个,您将能够更改参数编辑道具文件。
  • 现在是学习单元测试的好时机......那里有 很多 资源......(假设你真的在谈论测试,而不是批处理。)
  • 如果你在你的eclipse中使用tomcat可能this会帮助你。

标签: java eclipse


【解决方案1】:

您应该设置一个Maven 项目或ant 构建文件,以便一键执行一组测试,而不是像现在这样逐个进行。

否则,您可以简单地将所有要运行的测试放在特定的包或文件夹中,然后在 JUnit Run/ 中选择:“在选定的项目、包或源文件夹中运行所有测试”调试配置:

Eclipse 的另一种方法是创建一个测试套件:

  • 打开新建向导
  • 选择 Java > JUnit > JUnit 测试套件并单击下一步。
  • 输入测试套件类的名称
  • 选择应包含在套件中的类。

【讨论】:

    【解决方案2】:

    如果只是命令行变体,你可以添加一个像这样的简单类(在没有 javac 的情况下即时编写,可能有错误)

    public class PropertyRunner {
        private static String commands [] = {"TEST_1", "TEST_2", "TEST_3" };
    
        public static void main(String[] args) throws FileNotFoundException, IOException
        {
            Properties config = new Properties();
            config.load(new FileInputStream("config.props"));
            // config.props contains all my tests in the format:
            // TEST_1=-a|-k|ccccc
            // TEST_2=-b|-k|ccccd
            // TEST_3=-c|-k|FEFEF
    
            // now run test cases:
            for (String key : commands) {
                String cmdLine = config.getProperty(key);
                // cmdLine is in format "-a|-b|ccccc"
                String childArgs[] = cmdLine.split("\\|");
                // Exec your main class passing args directly or via threads
                // YourApp.main(childArgs);
            }
            System.exit(0);
        }
    }
    

    这很简单,您将所有命令行存储在一个属性文件中,然后迭代执行您真正的主类并传递从属性文件中读取的参数的每个键。

    【讨论】:

      猜你喜欢
      • 2012-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多