No se puede resolver la org.junit de importación

114

Necesito resolver un problema de Java para una entrevista y me han enviado la clase de prueba. Empieza con

import org.junit.Before;

y también tiene la siguiente sintaxis en algunos lugares:

@RunWith(JUnit4.class)
...
@Before
...
@Test

No he usado Java por un tiempo, así que esto me confunde un poco. Descargué eclipse y cuando intento compilar este archivo de prueba, hay errores en la importación y en los signos @. El error de importación arroja:

The import org.junit cannot be resolved.

Y el @RunWith ni siquiera se reconoce porque intenta resolverlo a un tipo.

SKLAK
fuente
1
¿Qué has buscado en la red? ¿Quieres que te demos una explicación detallada de cómo puedes ejecutar un caso de prueba JUnit 4? (Pista: hay esto JUnit4.classen su código)
Luiggi Mendoza
1
necesita agregar el archivo jar junit al proyecto. Puede utilizar junit-dep-4.8.2.jar. Luego puede hacer clic con el botón derecho y elegir ejecutar como caso de prueba junit
Krushna
2
¿Ha agregado el archivo jar de jUnit a su ruta de compilación en eclipse?
Pradeep Simha
Solo lo hice, debería haber buscado en Google esta pregunta. Gracias por la ayuda.
SKLAK

Respuestas:

192

Necesita agregar una junitbiblioteca a la ruta de clases de su proyecto. Hay varias opciones para lograrlo dependiendo de su configuración de desarrollo.

  1. Línea de comando : en el caso de las invocaciones de la línea de comando, deberá agregar junit.jara la ruta de clases de su aplicación con java -cp /path/to/junit.jar. Eche un vistazo a las respuestas aquí .

  2. Uso de eclipse : las distribuciones de Eclipse están incluidas con esta biblioteca y así es como puede usarla para su proyecto. Haga clic derecho en el proyecto eclipse y navegue:

Propiedades -> Ruta de compilación Java -> Bibliotecas -> Agregar biblioteca -> JUnit -> Junit 3/4

En los escenarios en los que desee utilizar una versión diferente del jar, en lugar de hacer clic en Agregar biblioteca arriba, debe hacer clic en Agregar jar externo y ubicar la biblioteca en el sistema de archivos.

hthserhs
fuente
1
@NishantShreshth ¿cómo agregar esto en un mavenproyecto?
Kasun Siyambalapitiya
Agregué JUnit 4 a través de Propiedades -> Ruta de compilación de Java, pero de vez en cuando Eclipse todavía me muestra este error, aunque es posible ejecutar las pruebas sin problemas. Reiniciar Eclipse resuelve el problema, por un tiempo. ¿Alguna explicación para esto?
Thomas W
No me funciona. Tan pronto como el proyecto sea modular, todos los botones de la pestaña Bibliotecas aparecerán en gris. (Con eclipse 2019-09 y java 11.0.4).
Gyro Gearloose
14

Haga clic derecho en el proyecto eclipse y navegue:

Propiedades -> Ruta de compilación Java -> Bibliotecas -> Agregar biblioteca -> JUnit -> Junit 3/4

Funciona en el mío.

avance rápido
fuente
6

puede buscar fácilmente una línea como "@Test" y luego usar la corrección rápida "agregar biblioteca junit 4 a la ruta de construcción" en esta línea. Creo que esto es más rápido que agregar junit manualmente al proyecto.

anión
fuente
Esto no lo resuelve en mi situación. JUnit está perfectamente en el camino pero sigue mostrando el error.
猫 ES
1
Funciona para mí ^^
jumping_monkey
6

Si usa maven y este fragmento de código se encuentra en la maincarpeta, intente reubicarlo en la testcarpeta.

Searene
fuente
3
@VigneshrajSekarbabu Porque la gente generalmente establece junitel alcance como test, lo que significa que solo trabajarán en la carpeta de prueba.
Searene
Gracias @searene .. Intenté tener mi TestBase en src / main / java pero luego no pude obtener las anotaciones de testNG. así que se trasladó a src / test / java. Pero ahora, estoy tratando de crear un RetryAnalyzer en src / main / java e IRetrAnalyzer está en org.testng que no puedo obtener en las clases src / main / java. ¿Alguna idea de qué podría resolver esto?
Vigneshraj Sekarbabu
@VigneshrajSekarbabu Una forma es verificar el alcance de las dependencias relacionadas con la prueba, asegurarse de que no lo estén test, para que pueda usar todo lo que hay dentro /src/main/java.
Searene
5

Si está utilizando eclipse y está trabajando en un proyecto de maven, entonces también funcionan los pasos anteriores.

Haz clic derecho en tu carpeta raíz.

Properties -> Java Build Path -> Libraries -> Add Library -> JUnit -> Junit 3/4

Instrucciones paso a paso aquí

sarthakgupta072
fuente
Para mí esto solo funcionó. Estaba realizando una depuración remota de mi aplicación web, por lo que eclipse tuvo algunos problemas con la integración de junit. Con respecto a maven, sí, maven importa junit y ejecutará las pruebas cuando ejecutemos mvn clean install. No soy un experto, pero esto es lo que creo que me pasa o al menos me pasó.
sarthakgupta072
2

Parece que el archivo jar de Junit no está en la ruta, también asegúrese de estar usando jdk1.5 o superior.

zaffargachal
fuente
No solo el jar, OP debería ejecutarlo como una prueba JUnit (tal vez OP preguntará cómo ejecutar la clase Java si no tiene una)public static void main(String[] args)
Luiggi Mendoza
No sabía cómo vincular el JUnit. Me lo imaginé. Haga clic con el botón derecho en el nombre del proyecto y vincule JUnit. Gracias.
SKLAK
2

Si está utilizando Java 9 o superior, es posible que deba requerir la dependencia junit en su module-info.java

module myModule {
    requires junit;
}
janDro
fuente
Estoy bastante seguro de que el problema al que me enfrento, que es el mismo que la pregunta original, está vinculado a este nuevo mecanismo de módulo. Ahora agregué esta línea a mi module-info.java existente y no hay más cruz roja en el explorador de paquetes, pero en la fuente todo sigue igual.
猫 ES
2

Si usa Maven, puede hacer clic contextual y ejecutar 'Maven / Actualizar proyecto ...'

ingrese la descripción de la imagen aquí

Jim
fuente
Cuando hago esto, module-info.java está lleno de errores y no se reconocen las lambdas. Eclipse / maven han revertido la biblioteca y la versión de Java a 1.5, y tengo <plugin> <groupId> org.apache.maven.plugins </groupId> <artifactId> maven-compiler-plugin </artifactId> <version> 3.8 .0 </version> <configuration> <release> 11 </release> </configuration> </plugin> en mi pom
Gyro Gearloose
1

En la línea de código inicial, copie los elementos 'Junit' o 'TestNG' que se mostrarán con Error hasta que importe la biblioteca con el archivo de proyecto.

Para importar bibliotecas al proyecto:

Right Click on the Project --> Properties --> Java Build Path --> Libraries -> Add Library -> 'Junit' or 'TestNG'

Agregar bibliotecas Junit

oshan Viduranga
fuente
1

Cuando agregue TestNG a sus dependencias de Maven, cambie el alcance de la prueba a la compilación. Espero que esto resuelva su problema.

Ajay
fuente
Por favor considere poner tales sugerencias como comentarios.
Hades
1

debe agregar la dependencia de Junit en el archivo pom.xml, lo que significa que debe actualizar con la última versión.

<dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency> 
Veera Reddy
fuente
0

En caso de que desee crear su propia clase de prueba. En Eclipse ir a Archivo -> Nuevo -> Test Case J Unidad . A continuación, puede elegir todas las rutas y la configuración de la clase de prueba en la ventana emergente del asistente.

Dharu Ravi
fuente
-1

Actualice a la última versión de JUnit en pom.xml. Esto funciona para mi.

RKM
fuente
esta respuesta sería mejor con más detalles sobre cómo hacerlo, es decir, qué código pegar, cómo averiguar la última versión, cómo buscar el código en línea para obtener el texto correcto, etc.
LightCC