2017-10-11 3 views
-1

Je suis tellement déconcertée par cette situation lorsque j'essaie d'obtenir le port du serveur dans le JUnit4 Test, mais le résultat est hors de mon esprit, le résultat est -1 .Pouvez-vous m'aider?

les application.properties:

server.port = 30008

@RunWith(SpringJUnit4ClassRunner.class) 
@SpringApplicationConfiguration(CustomerCenterApplication.class) 
@WebAppConfiguration 
public class BaseTestService { 
@Value("${server.port}") 
String serverPort; 
@Test 
public void test(){ 
System.out.println(serverPort); 
} 
} 
+0

S'il vous plaît préciser votre problème ou ajouter des détails supplémentaires pour mettre en évidence exactement ce dont vous avez besoin. Comme c'est écrit actuellement, il est difficile de dire exactement ce que vous demandez. Voir la page Comment demander pour obtenir de l'aide pour clarifier cette question. –

Répondre

0

Vous pouvez ajouter @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT) dans votre code ici.

@RunWith(SpringRunner.class) 
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT) 
public class BaseTestService { 
    ...... 
} 

La magie est ici des codes, dans votre cas, correspondre à la condition if, il en sera de l'initialisation avec les propriétés inline.

org.springframework.boot.test.context.SpringBootContextLoader # getInlinedProperties

protected String[] getInlinedProperties(MergedContextConfiguration config) { 
    ArrayList<String> properties = new ArrayList<String>(); 
    // JMX bean names will clash if the same bean is used in multiple contexts 
    disableJmx(properties); 
    properties.addAll(Arrays.asList(config.getPropertySourceProperties())); 
    if (!isEmbeddedWebEnvironment(config) && !hasCustomServerPort(properties)) { 
     properties.add("server.port=-1"); 
    } 
    return properties.toArray(new String[properties.size()]); 
} 
+0

ho, merci!, I sachez qu'il fonctionne bien quand la version de démarrage de printemps est au-dessus de 1.4.0, mais je veux savoir pourquoi il ne peut pas fonctionner et pourquoi le port du serveur est -1 de cette façon – xkupc

+0

Il est si gentil de vous, je l'ai eu.thanks beaucoup . – xkupc

+0

@xkupc bienvenue, donc vous pouvez accepter cette réponse et rendre votre question plus utile pour d'autres gars aussi. –

0

avoir un essai avec

@LocalServerPort 
int port; 

ou

@Value("${local.server.port}") 
int port; 

Les deux devraient faire la même chose.

Source: Spring Documentation (73,4 Découvrez le port HTTP lors de l'exécution)

+0

ho, merci!, Je sais que cela fonctionne bien lorsque la version de démarrage au printemps est supérieure à 1.4.0, mais je veux savoir pourquoi il ne peut pas fonctionner et pourquoi le port du serveur est -1 de cette façon – xkupc