Eclipse: permitir asserções


96

Estou executando o Eclipse Galileo. Como eu habilito asserções no Eclipse?

Como sugerido por outros sites, eu tentei adicionar os argumentos: -ea. Também tentei alterar o nível de conformidade do compilador para 1.4. Nenhuma dessas sugestões funcionou.

Respostas:


163
  1. Vá para o menu Run e, em seguida, para o item de menu Run Configurations .

insira a descrição da imagem aqui

  1. No painel esquerdo , vá para Java Applicatione, em seguida, vá para Assertions.

  2. No painel direito , escolha a guia Arguments .

  3. No campo para VM arguments, digite -eapara ativar as asserções.

insira a descrição da imagem aqui

  1. Clique no botãoApply e depois .Run

Para defini-lo globalmente como padrão para tudo :

  1. Vá para o menu Window(se estiver no Windows) ou vá para o menu Eclipse(se estiver no Mac). Para Linux, pode ser algo semelhante.

  2. Vá para Preferences.

  3. Escolha Javae, em seguida, Installed JREsno painel esquerdo .

  4. Selecione seu JRE e clique no Edit...botão no painel direito .

  5. No Default VM argumentscampo, adicione -ea.


Isso não funciona para Android, aparentemente você precisa do JUnit Assert.
Noumenon

42
Para defini-lo globalmente como o padrão para tudo, vá para Janela -> Preferências -> Java / JREs instalados. Selecione o JRE e clique em "Editar ...". No campo "Argumentos da VM padrão", adicione "-ea".
Silveri

@nbro Eu não tenho um Assertionsitem abaixo Java Application. Talvez você quisesse dizer configuração de execução atual?
John McClane

@JohnMcClane É possível que diferentes versões do Eclipse tenham diferentes painéis, botões e menus. Se eu adicionei especificamente essa instrução (mas foi há muito tempo), é provável que eu tenha experimentado em minha própria versão (como você também pode notar nas fotos, estou usando um mac, então é possível que as versões do Eclipse são ligeiramente diferentes em outros sistemas).
nbro

1
@JohnMcClane Sim, acho que você está certo. É possível que fossem nomes de projetos. Em vez de ir para "Asserções", você deve ir para o nome do seu projeto (eu acho).
nbro

36

Se você deseja resolver este problema globalmente para todos os testes JUnit, vá para Preferences > Java > JUnite no topo clique na caixa de seleção para " Adicionar 'ea' aos argumentos VM ao criar uma nova configuração de inicialização JUnit " Agora o Eclipse não irá incomodá-lo a cada novo teste que você quer correr. Para os testes existentes, você deve remover suas configurações de execução em Run Configuration > JUnit.


5
Existe alguma maneira de adicionar -ea a todas as configurações de inicialização JUnit existentes ?
mxro

Para adicionar -ea aos testes existentes, você deve remover as configurações de execução em Run Configuration> JUnit
Honza

11

Para fazer isso globalmente para todas as execuções Java, edite as propriedades de JREs instalados.

Por exemplo: Windows -> Preferências -> realce o JRE padrão -> clique em Editar ... -> Na caixa de entrada Argumentos da VM padrão, insira -ea -> clique no botão Concluir.

Isso funcionou no Eclipse Kepler SR2.


5

Em projetos maven , você pode executar o método principal com o classpath auto-magic por:

bash> export MAVEN_OPTS="-ea" && mvn exec:java -Dexec.mainClass="com.your.class.with.main"
cmd> set MAVEN_OPTS="-ea" && mvn exec:java -Dexec.mainClass="com.your.class.with.main"

No linux / eclipse, você pode adicionar janela de terminal com bash para um uso mais conveniente.


4

Você deseja habilitar asserções para um aplicativo que está executando no Eclipse? Normalmente, apenas adiciono -ea aos parâmetros da linha de comando no perfil "Executar como".


1
Sim, é assim que geralmente faço quando estou executando a partir da linha de comando, e é por isso que pensei que adicionar esses argumentos VM nas preferências funcionaria. Obrigado pela contribuição. Confirma que eu não estava louco por pensar que isso deveria servir ..
bem, na verdade,
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.