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.


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.


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.


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.


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.


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í


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.


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;
}

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í


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


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.


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> 

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.


-1

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


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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.