uiautomator2安卓测试框架报No tests found for given includes

uiautomator2测试框架报No tests found for given includes,意思是找不到测试类;

怀疑是项目没编译成功,但是android statio的gradle没有build选项,于是手动用命令提示行gradlew build发现项目编译时可以的,但是classs没生成;

又怀疑是@RunWith(AndroidJUnit4.class)的问题,但是不知道原因;后来在网上看到是用instruments类型的testcase ,不能用普通testcase, 与@RunWith(AndroidJUnit4.class)无关,@RunWith(AndroidJUnit4.class)就是误导人的其实这个注解没用都可以去掉,正确的配置是

新建android instrumented tests, 因为uiautomator2是基于instrument的:

 指定类名:当连上adb后这里会显示设备,就会把代码打成instrument的apk上传到手机上运行了

  chatgpt免费体验:http://www.chat136.com

chatgpt学习:http://me.chat136.com

D:\java1.8\bin\java.exe -ea -Didea.test.cyclic.buffer.size=1048576 "-javaagent:D:\idea\IntelliJ IDEA 2024.2.3\lib\idea_rt.jar=54408:D:\idea\IntelliJ IDEA 2024.2.3\bin" -Dfile.encoding=UTF-8 -classpath "C:\Users\Administrator\.m2\repository\org\junit\platform\junit-platform-launcher\1.8.2\junit-platform-launcher-1.8.2.jar;C:\Users\Administrator\.m2\repository\org\junit\platform\junit-platform-engine\1.8.2\junit-platform-engine-1.8.2.jar;C:\Users\Administrator\.m2\repository\org\opentest4j\opentest4j\1.2.0\opentest4j-1.2.0.jar;C:\Users\Administrator\.m2\repository\org\junit\platform\junit-platform-commons\1.8.2\junit-platform-commons-1.8.2.jar;C:\Users\Administrator\.m2\repository\org\apiguardian\apiguardian-api\1.1.2\apiguardian-api-1.1.2.jar;D:\idea\IntelliJ IDEA 2024.2.3\lib\idea_rt.jar;D:\idea\IntelliJ IDEA 2024.2.3\plugins\junit\lib\junit5-rt.jar;D:\idea\IntelliJ IDEA 2024.2.3\plugins\junit\lib\junit-rt.jar;D:\java1.8\jre\lib\charsets.jar;D:\java1.8\jre\lib\deploy.jar;D:\java1.8\jre\lib\ext\access-bridge-64.jar;D:\java1.8\jre\lib\ext\cldrdata.jar;D:\java1.8\jre\lib\ext\dnsns.jar;D:\java1.8\jre\lib\ext\jaccess.jar;D:\java1.8\jre\lib\ext\jfxrt.jar;D:\java1.8\jre\lib\ext\localedata.jar;D:\java1.8\jre\lib\ext\nashorn.jar;D:\java1.8\jre\lib\ext\sunec.jar;D:\java1.8\jre\lib\ext\sunjce_provider.jar;D:\java1.8\jre\lib\ext\sunmscapi.jar;D:\java1.8\jre\lib\ext\sunpkcs11.jar;D:\java1.8\jre\lib\ext\zipfs.jar;D:\java1.8\jre\lib\javaws.jar;D:\java1.8\jre\lib\jce.jar;D:\java1.8\jre\lib\jfr.jar;D:\java1.8\jre\lib\jfxswt.jar;D:\java1.8\jre\lib\jsse.jar;D:\java1.8\jre\lib\management-agent.jar;D:\java1.8\jre\lib\plugin.jar;D:\java1.8\jre\lib\resources.jar;D:\java1.8\jre\lib\rt.jar;D:\abandon\demo1\target\test-classes;D:\abandon\demo1\target\classes;D:\apache-maven-3.8.6-bin\apache-maven-3.8.6\mvn_resp\org\springframework\boot\spring-boot-starter-web\2.6.13\spring-boot-starter-web-2.6.13.jar;D:\apache-maven-3.8.6-bin\apache-maven-3.8.6\mvn_resp\org\springframework\boot\spring-boot-s
最新发布
03-18
<think>好的,我需要帮助用户解决在IntelliJ IDEA中使用Java 1.8和Spring Boot配置和运行JUnit平台测试的问题。用户提到了启动问题,可能涉及依赖配置和IDE设置。首先,我应该回顾用户提供的引用内容,特别是引用[2]和引用[3],因为这些直接提到了JUnit和Spring Boot项目的创建以及测试生成。 首先,用户可能遇到JUnit版本不兼容的问题,如引用[1]中的错误提示需要JUnit 4.12或更高版本。但用户现在想用JUnit 5(平台测试),所以需要确保依赖正确。根据引用[2],使用Spring Initializr创建项目时可能需要手动添加JUnit Jupiter依赖,尤其是当出现版本问题或源发行版错误时。用户需要检查pom.xml或build.gradle中的依赖项,确保JUnit Jupiter的版本正确,并且作用域是test。 其次,引用[3]提到了如何在IntelliJ中生成参数化测试,这涉及到IDE的具体操作步骤。用户可能需要正确配置测试生成的方式,确保使用JUnit 5的注解如@ParameterizedTest。此外,代码异味检测可能与测试配置无关,但重构可能需要正确的测试框架支持。 接下来,我需要分步骤指导用户如何配置依赖、检查项目结构、设置IDE以及编写测试用例。可能需要提到在Maven或Gradle中添加JUnit Jupiter依赖,确保没有旧版本的JUnit 4残留,因为两者并存可能导致冲突。同时,检查项目的Java版本设置,确保与Java 1.8兼容,避免出现无效的源发行版错误,如引用[2]中的问题。 另外,IntelliJ IDEA的配置也很重要,比如正确设置测试的运行时库,使用JUnit 5作为默认测试框架,以及在运行配置中选择正确的测试引擎。用户可能需要通过Alt+Enter生成测试时选择JUnit 5的模板,如引用[3]中的例子所示。 最后,验证步骤应包括创建简单的测试类,使用JUnit 5的注解如@Test,并运行测试以确保配置正确。如果仍有问题,可能需要检查依赖冲突或IDE缓存,建议清理并重新导入项目。 总结步骤应该是:1. 添加正确的JUnit 5依赖;2. 配置IDE支持JUnit 5;3. 编写测试用例;4. 处理常见问题如版本冲突和源版本错误。需要确保所有步骤都符合Java 1.8和Spring Boot的环境要求,并引用相关的引用内容来支持建议。</think>### 分步配置与运行 JUnit 平台测试(IntelliJ + Java 1.8 + Spring Boot) #### 1. 添加 JUnit 5 依赖 在 `pom.xml`(Maven)或 `build.gradle`(Gradle)中明确指定 JUnit 5 依赖: ```xml <!-- Maven 配置 --> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-api</artifactId> <version>5.8.2</version> <scope>test</scope> </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-engine</artifactId> <version>5.8.2</version> <scope>test</scope> </dependency> ``` 确保移除旧版 JUnit 4 依赖(如 `junit:junit`)避免冲突[^2]。 #### 2. 配置 IntelliJ IDEA - **步骤 1**:右键项目 > **Open Module Settings** > **Project Settings** > **Libraries** 检查是否包含 `junit-jupiter-5.8.2`,若缺失则手动添加。 - **步骤 2**:**File > Settings > Build, Execution, Deployment > Build Tools > Gradle/Maven** 确认 **Test Runner** 选择为 **Gradle/Maven Default** 或 **IntelliJ IDEA**。 - **步骤 3**:右键测试类或方法,选择 **Run 'Test...'** 时,确保运行配置的 **Test Framework** 为 **JUnit 5**。 #### 3. 编写测试类 使用 JUnit 5 注解(如 `@Test`、`@ParameterizedTest`): ```java import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.*; class MathUtilsTest { @Test void testAddition() { assertEquals(4, MathUtils.add(2, 2)); } } ``` #### 4. 解决常见问题 - **问题 1**:`无效的源发行版: 13` 检查 **Project Structure**(Ctrl+Alt+Shift+S)中 **Project SDK** 和 **Language Level** 是否均为 **Java 8**。 - **问题 2**:`No tests found for given includes` 右键测试目录 > **Mark Directory as > Test Sources Root**,确保测试类在 `src/test/java` 中。 - **问题 3**:JUnit 4 与 5 冲突 在依赖中排除旧版: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> <exclusions> <exclusion> <groupId>junit</groupId> <artifactId>junit</artifactId> </exclusion> </exclusions> </dependency> ``` #### 5. 运行测试 - 点击测试类/方法左侧的绿色箭头运行。 - 使用 `mvn test` 或 `gradle test` 通过命令行执行。 ### 验证配置成功的标志 - 测试运行后控制台显示 **JUnit Jupiter** 作为测试引擎。 - 参数化测试支持(如 `@CsvSource`)可正常解析输入[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值