JUnit(1):以debug方式配置/启动JUnit

     作为对JUnit系统性研究的开篇,习惯性地还是想以debug的方式来看究竟JUnit背后都做了什么,虽说有不错的文档和JUnitInAction这样的好书, 有道是百闻不如一见--看了JUnit背后的代码,对其的理解更真切.

    好的,直接进入正题.
        1, 下载junit3.8.1(包括源码).
        2, 解压后,进入junit3.8.1目录, 可看到有如下文件(夹): junit.jar, src.jar, junit等. 很好, JUnit自带了一些实例, 我们可直接在命令行执行. 在命令行进入junit3.8.1目录, 运行命令: "java -cp junit.jar;. junit.textui.TestRunner junit.samples.AllTests", 可以看到如下所示的结果.



        3, 如下图所示, 在Eclipse里新建一个Java工程并导入JUnit目录.

注: 图中的myJUnit jar包是自已加的,并没有直接用Eclipse自带的JUnit jar包.

导 入后, 在"Run\debug configurations..."对话框里,选中左侧"Remote Java Application"项,点左上角的"New"按钮, 右侧的Project栏里选定刚新建并导入的JUnit_self工程, name一栏可命名为"JUnit", Port一栏先设定为6000,下一步将用到, 点Apply按钮完成.

4, 在junit3.8.1目录下,新建一bat文件,可命名为debugJUnit.bat, 其内容如下:
    java -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=6000 -cp junit.jar;. junit.textui.TestRunner junit.samples.AllTests

    这里的address=6000就是第三步里设置好的Port(其值为6000). 别的参数(如suspend,server等)Google下吧, 这里就不再解释了.

5, 在Eclipse时,以"Ctrl + Shift +T"快捷键地打开junit.textui.TestRunner类的源码(如何给jar包绑定源码,这里就不再细说了),并在其main方法第一行 的"TestRunner aTestRunner= new TestRunner()"处设置断点.

6, 在命令行,进入junit3.8.1目录下, 运行刚写好的debugJUnit.bat脚本. 这时,不出意外, Eclipse将停在第五步设置的断点处.

好了, 配置完收工.

Enjoy debugging JUnit in Eclipse, from main method!

plugins { id 'com.android.application' } android { namespace 'com.kotei.fusionpositiondemo' compileSdk 34 defaultConfig { applicationId "com.kotei.fusionpositiondemo" minSdk 24 targetSdk 34 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" // 添加 DEBUG 包名后缀 missingDimensionStrategy 'environment', 'debug' } // 启用视图绑定/数据绑定(按需选择) buildFeatures { viewBinding true // dataBinding true } buildTypes { debug { debuggable true minifyEnabled false shrinkResources false signingConfig signingConfigs.debug proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' // 添加调试后缀便于识别 applicationIdSuffix ".debug" versionNameSuffix "-DEBUG" // 配置原生代码调试 ndk { debugSymbolLevel 'FULL' // 包含完整调试符号 abiFilters 'arm64-v8a', 'armeabi-v7a' // 只包含常用ABI加速构建 } // 禁用 PNG 优化加速构建 aaptOptions { cruncherEnabled false } } release { minifyEnabled true shrinkResources true proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' // 发布版ABI配置 ndk { abiFilters 'arm64-v8a', 'armeabi-v7a', 'x86_64' } } } // 配置编译选项 compileOptions { sourceCompatibility JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_17 // 启用增量注解处理 incremental true } } dependencies { // 基础依赖 implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.10.0' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' // 调试工具 debugImplementation 'com.facebook.stetho:stetho:1.6.0' // 网络/数据库调试 debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.12' // 内存泄漏检测 // 本地库模块依赖 implementation project(':FusionPositionEngine') // Google Play 服务 implementation 'com.google.android.gms:play-services-location:21.0.1' // 测试依赖 testImplementation 'junit:junit:4.13.2' androidTestImplementation 'androidx.test.ext:junit:1.1.5' androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1' androidTestImplementation 'androidx.test:runner:1.5.2' androidTestImplementation 'androidx.test:rules:1.5.0' }
08-06
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值