首页 > 解决方案 > 如何在 java eclipse 中使用 Junit 5 运行 RunWith?

问题描述

我想在 Junit 5 中用几个类运行 @RunWith 并附加我所做的依赖项以及代码,但只有一个类正在运行 = someTest,我在这里错过了什么?

类一些测试

 import org.junit.jupiter.api.Test;
 import org.junit.platform.suite.api.SelectClasses;

 @RunWith(JUnitPlatform.class)     
 @SelectClasses( { Something.class, someTest.class } )
 public class someTest {
 @Test
 public void sadsadas() {
System.out.println("these is the runWith");
      }
   }

上课

    import java.util.logging.ConsoleHandler;
    import java.util.logging.FileHandler;
    import java.util.logging.Level;
    import java.util.logging.Logger;
    import java.util.logging.SimpleFormatter;
    import org.junit.jupiter.api.AfterEach;
    import org.junit.jupiter.api.BeforeEach;
    import org.junit.jupiter.api.Tag;
    import org.junit.jupiter.api.Test;

    public class Something {

Logger logger = Logger.getLogger("");
FileHandler fh;

@BeforeEach
public void wallad() {
    System.out.println("hello");
}

@AfterEach
public void asddf() {
    System.out.println("pizza");
}

@Tag("test")
@Test
public void some() {

    try {
        fh = new 
                  FileHandler("C:\\Users\\tester\\Desktop\\MyLogFile.txt");
        logger.addHandler(fh);
        SimpleFormatter formatter = new SimpleFormatter();  
        fh.setFormatter(formatter);
        } catch (Exception e) {
        e.printStackTrace();
        }

    logger = Logger.getLogger(Logger.class.getName());
    logger.setLevel(Level.ALL);
    ConsoleHandler handler = new ConsoleHandler();
    handler.setLevel(Level.ALL);
    logger.addHandler(handler);
    logger.setUseParentHandlers(false);

    System.out.println("test1");
    logger.log(Level.WARNING, "warning");
    System.out.println("test2");
    logger.log(Level.INFO, "information");
    System.out.println("test3");
    logger.log(Level.SEVERE, "severe");
    System.out.println("test4");

    logger.log(Level.FINEST, "finest");
    System.out.println("test5");
    logger.log(Level.FINE, "fine");
    System.out.println("test6");
    logger.log(Level.FINER, "finer");
    System.out.println("test7");
    logger.log(Level.FINEST, "finest");

}
}

这些是附加到 Maven 的依赖项

<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.4.0-M1</version>
<scope>test</scope>
</dependency>

<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>5.4.0-M1</version>
<scope>test</scope>
</dependency>

 <dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-console-standalone</artifactId>
<version>1.4.0-M1</version>
</dependency>

我在 runWith 方面错过了什么?或者在junit5中我只需要写:

 @SelectClasses( { Something.class, someTest.class } )

我正在运行 Eclipse Jee 2018-09

标签: javaeclipsejunit5

解决方案


重命名Something.classSomethingTest.class它会起作用。

@SelectClasses({ SomethingTest.class, someTest.class })

推荐阅读