如何在正常生命周期之外使用Maven运行Selenium RC junit测试?

如何在正常生命周期之外使用Maven运行Selenium RC junit测试?,maven,selenium,junit,selenium-webdriver,Maven,Selenium,Junit,Selenium Webdriver,我有一个Maven项目,它是一组使用JUnit运行的Selenium 2测试。换句话说,整个项目中唯一的东西是JUnit测试用例,它们都位于正常的源代码目录中,即src/main/java,因为它们是项目中的主要源文件 我希望能够使用Maven运行这些相同的测试,但由于这些测试不是项目中的实际单元测试或集成测试(它们不是在测试自己,而是在其他地方测试web应用),我不希望它们在正常的构建生命周期中运行。但是,我仍然希望能够在POM文件中定义测试阶段/目标 在这一点上,我有点理解surefire插

我有一个Maven项目,它是一组使用JUnit运行的Selenium 2测试。换句话说,整个项目中唯一的东西是JUnit测试用例,它们都位于正常的源代码目录中,即src/main/java,因为它们是项目中的主要源文件

我希望能够使用Maven运行这些相同的测试,但由于这些测试不是项目中的实际单元测试或集成测试(它们不是在测试自己,而是在其他地方测试web应用),我不希望它们在正常的构建生命周期中运行。但是,我仍然希望能够在POM文件中定义测试阶段/目标

在这一点上,我有点理解surefire插件的工作方式,我只是不知道如何从构建中分离执行。我希望我所有的新执行都是独立的,这样我就可以简单地运行它们,比如:mvn运行webtests,让运行webtests阶段与我的项目的编译和打包目标完全不同

所以我想我有两个问题:

1)我的思路是否正确,或者是否有更好的方法来思考这个问题

2)我接下来需要做什么才能使这项工作成功?创建自定义阶段?创建自定义目标


很抱歉问了这么一个看似基本的问题,但我找不到任何人做这种事情的例子。

我认为你说得对。不幸的是,Maven在某些方面缺乏灵活性。通常情况下,可以制作出适合自己的东西,但有时会让人感到非常痛苦。我认为最简单的方法是为selenium测试使用不同的命名约定,并确保这些是“正常”测试运行。然后将surefire插件配置到selenium测试中,并排除其他插件。然后要运行selenium测试,您可以

mvn test -P selenium-tests
设置它以便运行
mvn运行webtests
的唯一方法是

  • 定义“运行webtests”是生命周期中的一个阶段的位置,或
  • ,尽管执行一个插件中总是有一个“:”,所以它更像是
    mvnmyplugin:runwebtests

  • 与pom中的一个简单配置文件相比,这些都需要更多的工作,更难维护。

    我不明白;你为什么要在生命周期之外这样做?