我可以在Eclipse中运行JUnit测试,尽管它没有main()
方法。我可以运行Ant xml,尽管它没有任何代码。
我可以用同样的方式运行Spring上下文吗?
我可以指示Eclipse在spring XML“runing”上快速运行如下所示的程序吗?
public class Runner {
public static void main(String[] args) {
new ClassPathXmlApplicationContext("/springtests/test04.xml");
}
}
更新
这个问题是关于安慰的。我正在为弹簧配置编写很多测试。对于每个测试,我正在编写JUnit测试或上面的跑步者类。因此,我希望尽量减少工作量:能够使用弹簧配置右键单击XML文件并“运行”它。通过“运行”,我并不是指将XML加载到内存中并将CPU控制转移到内存中。
更新1
好的,我使用以下代码在项目中创建了SpringRunner
类
public class SpringRunner {
public static void main(String[] args) {
new FileSystemXmlApplicationContext(args[0]);
}
}
接下来创建名为SpringRunner
的运行/调试配置,并将此calss作为主类,并设置
${resource_loc}
在程序参数部分。
这样我只需点击几下就可以“运行”任何弹簧配置:
1)右键单击XML文件
2)选择“Run / Debug As ...”
3)选择“运行/调试配置......”
4)选择“SpringRunner”
5)单击“运行/调试”
现在的问题是,是否有可能缩短这一点?如何告诉Eclipse在右键单击并“运行/调试为”时立即将此选项显示在任何XML文件或任何文件上?
答案 0 :(得分:0)
不,你甚至不能使用JUnit,....当你运行JUnit时,在内部它有一些具有main方法的util类,这个方法通过反射来运行你的junit类。
请记住,在java中没有办法可以在没有main方法的情况下运行任何代码。
class A{
static{
System.out.print("where is main");
}
}
这个代码在类加载到jvm时起作用,这可能是我上面的单词的例外,但一般的答案是否定的。
快速问题为什么你需要在没有主要的情况下运行弹簧? 如果你认为junit是runnig没有main方法(实际上它有),那么使用像tomcat这样的app容器,你不必声明任何main方法,它运行你的代码,你的春天或任何你想要的。
答案 1 :(得分:0)
查看http://static.springsource.org/spring/docs/2.5.x/reference/testing.html#testcontext-framework
例如:
@RunWith(SpringJUnit4ClassRunner.class)
// ApplicationContext will be loaded from "/applicationContext.xml" and "/applicationContext-test.xml"
// in the root of the classpath
@ContextConfiguration(locations={"/applicationContext.xml", "/applicationContext- test.xml"})
public class MyTest {
// class body...
}
希望我能帮忙......