Existe-t-il un moyen de modifier les propriétés d'un fichier? J'essaie d'exécuter des tests de sélénium en parallèle, avec Spring et Jetty, donc j'essaye de configurer l'url de la base de données, le port du jettyserver et le port du serveur sélénium. Alors que je suis en mesure d'initialiser deux serveurs ou plus où les tests peuvent s'exécuter.Définition des propriétés au printemps
Mon fichier contient server.properties ceci:
jdbc.url=jdbc:hsqldb:hsql://localhost/bibliothouris_scenario
jetty.port=8081
seleniumServer.port=4444
Je peux lire ces propriétés avec un PropertyPlaceholderConfigurer, et je besoin de l'URL de base de données, Jettyport et port seleniumserver être flexible.
Je les ai déclarées comme ceci:
Dans mon applicationContext.xml:
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location">
<value>classpath:server.properties</value>
</property>
</bean>
<bean id="dataSource" destroy-method="close" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="org.hsqldb.jdbcDriver" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="sa" />
<property name="password" value="" />
</bean>
Dans le fichier serverContext.xml:
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location">
<value>classpath:server.properties</value>
</property>
</bean>
<bean class="com.~companyName~.bibliothouris.jetty.JettyServer" init-method="start" destroy-method="stop">
<constructor-arg value="${jetty.port}" />
<constructor-arg ref="dataSource" />
</bean>
<bean class="org.openqa.selenium.server.SeleniumServer" init-method="start" destroy-method="stop">
<constructor-arg>
<bean class="org.openqa.selenium.server.RemoteControlConfiguration">
<property name="port" value="${seleniumServer.port}" />
<property name="singleWindow" value="true" />
<property name="timeoutInSeconds" value="10" />
</bean>
</constructor-arg>
</bean>
<bean class="com.thoughtworks.selenium.DefaultSelenium" init-method="start" destroy-method="stop" lazy-init="true">
<constructor-arg>
<bean class="com.thoughtworks.selenium.HttpCommandProcessor">
<constructor-arg value="localhost" />
<constructor-arg value="${seleniumServer.port}" />
<constructor-arg value="*firefox c:/~companyname~/firefox/firefox.exe" />
<constructor-arg value="http://localhost:${jetty.port}" />
</bean>
</constructor-arg>
</bean>
Quand je change les données dans le serveur. propriétés les tests de sélénium fonctionnent sur les bons serveurs avec les bons ports, sans échecs. Je cherche maintenant une méthode pour changer les propriétés dans le fichier server.properties.
salutations et merci à l'avance
@Walle, s'il vous plaît upvote les réponses qui ont aidé, nous sommes également ici pour la réputation;) –
J'ai besoin de 15 réputation pour faire cela: D – Walle
Mat est bon, vous devez accéder aux ressources classpath via getResourceAsStream, sinon votre code se casse lorsqu'il est exécuté dans un environnement différent –