使用 Eclipse 调试不同的命令行参数

Debugging varying command line parameters with Eclipse

我在eclipse中有一个Java project/program可以加载和运行,加上修改命令行参数成功。这个程序只需要几秒钟运行,我想用各种命令行参数配置来测试它。有没有一种方法可以在我单击一次调试按钮后将 eclipse 配置为 运行 类似下面的 bash 脚本?

java Classify -mode train -algorithm majority -model_file outputModelEvenOdd -data ./Homework1Data/bio/bio.train
java Classify -mode test -model_file outputModelEvenOdd -data ./Homework1Data/bio/bio.dev -predictions_file bioPredictionsEvenOdd

echo "**finance data**"
java Classify -mode train -algorithm majority -model_file outputModelEvenOdd -data ./Homework1Data/finance/finance.train
java Classify -mode test -model_file outputModelEvenOdd -data ./Homework1Data/finance/finance.dev -predictions_file financePredictionsEvenOdd

echo "**speech data**"
java Classify -mode train -algorithm majority -model_file outputModelEvenOdd -data ./Homework1Data/speech/speech.train
java Classify -mode test -model_file outputModelEvenOdd -data ./Homework1Data/speech/speech.dev -predictions_file speechPredictionsEvenOdd

echo "**synthetic easy data**"
java Classify -mode train -algorithm majority -model_file outputModelEvenOdd -data ./Homework1Data/synthetic/easy.train
java Classify -mode test -model_file outputModelEvenOdd -data ./Homework1Data/synthetic/easy.dev -predictions_file syntheticEasyEvenOdd

echo "**synthetic hard data**"
java Classify -mode train -algorithm majority -model_file outputModelEvenOdd -data ./Homework1Data/synthetic/hard.train
java Classify -mode test -model_file outputModelEvenOdd -data ./Homework1Data/synthetic/hard.dev -predictions_file syntheticHardEvenOdd

echo "**vision data**"
java Classify -mode train -algorithm majority -model_file outputModelEvenOdd -data ./Homework1Data/vision/vision.train
java Classify -mode test -model_file outputModelEvenOdd -data ./Homework1Data/vision/vision.dev -predictions_file visionEvenOdd

我希望断点和可视化调试器在 运行 秒之间工作。作为旁注,我也在使用 maven eclipse 插件(我认为是 m2e),以防它具有这样的功能。

我知道我可以选择修改我的程序以从包含所有情况的参数的单个文件加载所有实例,但是如果 Eclipse 有这种测试方式的工具我想使用它。

Eclipse 没有用于此的内置工具。

这样的测试运行可以使用单元测试框架实现,例如 JUnit,Eclipse 内置了对 运行 JUnit 的支持,因此您甚至不必下载一个 JUnit jar 文件。

您可能仍想为 运行 在 Eclipse 之外的相同测试下载 JUnit jar 文件,例如使用 Ant 或 Gradle,或者如果您想使用与 Eclipse 一起提供的不同版本的 JUnit。

例子

public class ClassifyTest {
    @Test
    public void trainAndTestBio() {
        Classify.main(new String[] {
            "-mode",       "train",
            "-algorithm",  "majority",
            "-model_file", "outputModelEvenOdd",
            "-data",       "./Homework1Data/bio/bio.train"
        });
        Classify.main(new String[] {
            "-mode",             "test",
            "-model_file",       "outputModelEvenOdd",
            "-data",             "./Homework1Data/bio/bio.dev",
            "-predictions_file", "bioPredictionsEvenOdd"
        });
    }
    @Test
    public void trainAndTestFinance() {
        // code here
    }
}