unit tutorial tests test make how examples example español create java unit-testing junit

java - tutorial - junit netbeans



JUnit y junit.framework.TestSuite-No hay métodos ejecutables (3)

He hecho algunas pruebas unitarias (en clase de prueba). El tutorial que he leído decía que debería hacer una TestSuite para los unittest.

Extraño es que cuando estoy ejecutando la prueba unitaria directamente (seleccionando la clase de prueba - Ejecutar como prueba jUnit) todo está funcionando bien, aunque cuando intento lo mismo con el conjunto de pruebas siempre hay una excepción: java.lang. Excepción: no hay métodos ejecutables.

Aquí está el código del conjunto de prueba:

import junit.framework.Test; import junit.framework.TestSuite; public class AllTests { public static Test suite() { TestSuite suite = new TestSuite("Test suite for com.xxx.yyyy.test"); //$JUnit-BEGIN$ suite.addTestSuite(TestCase.class); //$JUnit-END$ return suite; } }

¿Alguna idea de por qué esto no está funcionando?


Por supuesto, no funcionará ya que no le está diciendo al grupo de pruebas cuáles son sus clases de prueba.

Pero me pregunto por qué no estás usando la "manera clásica" para crear suites de prueba, lo que es una gran cantidad de tareas de hormiga de jUnit.


No tengo experiencia en hormiga, así que no lo estoy usando para probarlo ahora mismo.

Al buscar en Internet, parece que estoy mezclando el antiguo comportamiento de jUnit 3.8 y jUnit 4.0. Intentando ahora una forma de usar el "nuevo comportamiento"

editado:
ahora funciona:

AllTest cambió a:

import org.junit.runner.RunWith; import org.junit.runners.Suite; import org.junit.runners.Suite.SuiteClasses; @RunWith(value=Suite.class) @SuiteClasses(value={TestCase.class}) public class AllTests { }

TestCase cambiado a:

import static org.junit.Assert.assertTrue; import org.junit.Test; public class TestCase { @Test public void test1 { assertTrue (tmp.getTermin().equals(soll)); } }


Me tomó un poco demasiado como para resolverlo, pero creo que esto resuelve tu problema:

Está haciendo un suite.addTestSuite (TestCase.class), mientras que debería haber hecho un suite.addTest (TestCase.class).

También puede agregar una suite de pruebas a una suite de pruebas para crear una jerarquía completa de testsuites. En ese caso, deberá usar suite.addTest (). Pero tenga en cuenta que luego usa .suite () y no .class: suite.addTest (MyTestSuite. Suite () )!