Wicket Page Testini kullanarak wicket projemi test etmeye çalışıyorum.Wicket sayfa testi, Jetty güvenlik yapılandırması
2015-03-24 17:46:24,789 WARN [:] [main] [] [||] - org.eclipse.jetty.webapp.WebAppContext - Failed startup of context o.e.j.w.WebAppContext
java.lang.IllegalStateException: No LoginService for [email protected]51268 in [email protected]
Benim TestNG paketi şöyle:
<suite name="wicket-page-test-sample">
<test verbose="2" name="tests" annotations="JDK">
<packages>
<package name="..."></package>
</packages>
<classes>
<class name="com.ttdev.wicketpagetest.WebPageTestContext"></class>
<class name="nl.pack.test.MessagePanelTest"></class>
</classes>
</test>
test sınıf şuna benzer:
@Test
public class MessagePanelTest
{
public void testOpenComponent()
{
final StringBuffer log = new StringBuffer();
MockableSpringBeanInjector.mockBean("hibernateService", mock(HibernateService.class));
WicketSeleniumDriver ws = WebPageTestContext.getWicketSelenium();
ws.openComponent(new ComponentFactory()
{
private static final long serialVersionUID = 1L;
public Component createComponent(String id)
{
return new MessagePanel(mock(AjaxRequestTarget.class));
}
});
assert ws.getText(By.id("info")).equals("Hello");
}
}
testi başlatılıyor
bu hatayı atmak Jetty neden olur
Böyle İskele yapılandırmasını değiştirme konusunda internette bazı önerilerde bulundu:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd">
<Configure class="org.eclipse.jetty.webapp.WebAppContext">
<Get name="securityHandler">
<Set name="loginService">
<New class="org.eclipse.jetty.security.HashLoginService">
<Set name="name">MySecurityRealm</Set>
<Set name="config">src/test/resources/jetty-realm.properties</Set>
<Call name="start"/>
</New>
</Set>
<Set name="checkWelcomeFiles">true</Set>
</Get>
</Configure>
Ama şimdi testlerde bu yapılandırmayı dahil etmek olmaz nasıl. Neyi kaçırıyorum? Test için iskeleyi nasıl yapılandırmalıyım?
bağlantılar bulmak Sorunuza aradı ama? Asıl mesele, iskelenin login-config için bir loginService bulamamasıdır. Gömülü bir iskele ile normal olarak bu hizmeti "server.addBean (loginService); - ama wicket-tester, jetty sunucuya nasıl başlayacağınıza dair bir çok özelleştirme yapılmasına izin vermez. –