MAC下基于maven使用IDEA走读TestNG源码解析

之前用Python执行程序都是python xxx.py,最近在使用Java技术栈的TestNG,于是想能够也用命令行实现…

创建一个Maven项目

确保已安装了Maven,可使用Maven命令后,使用以下命令可快速创建Maven项目

mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false

进入项目后,大概是下面的目录结构:

.
├── pom.xml
└── src
    ├── main
    │   └── java
    │       └── com
    │           └── mycompany
    │               └── app
    │                   └── App.java
    └── test
        └── java
            └── com
                └── mycompany
                    └── app
                        └── AppTest.java

此时,AppTest.java应该还是使用Junit的,需要改成使用TestNG:

在pom.xml里安装TestNG

<dependency>
      <groupId>org.testng</groupId>
      <artifactId>testng</artifactId>
      <version>7.1.0</version>
    </dependency>

修改AppTest.java里相关注解是来自TestNG的repository

import org.testng.annotations.Test;
import static org.testng.AssertJUnit.assertTrue;

配置testng.xml文件

在项目根目录,新建testng.xml:

<?xml version="1.0" encoding="UTF-8"?>
<suite name="Sample test Suite">
    <test name="Sample test">
        <classes>
            <class name="com.mycompany.app.AppTest" />
        </classes>
    </test>
</suite>

配置完testng.xml后,在idea里鼠标右键这个文件也可以Run,Run的时候Console里第一行会打印命令,其中我们需要知道的是 -classpath的内容,后续要用到

命令行运行TestNG

  • 使用mvn test可以运行
  • 使用java命令运行

要先build下项目(即转化为.class文件,我是在idea里使用界面build了,build后可以看到target文件夹生成),接下来使用命令执行:

java -classpath 第三步拿到的classpath内容 org.testng.TestNG testng.xml

classpath 表示程序会在这些path下寻找第三方库

执行结果:

===============================================
Sample test Suite
Total tests run: 1, Passes: 1, Failures: 0, Skips: 0
===============================================

调试TestNG源码

借助IDEA强大的调试界面,走读TestNG源码。由于IDEA自带的TestNG插件,所以Debug时,走不到TestNG的main方法里,所以需要新建debug Config

如果提示测试的class no found,需要把target->test-classes路径添加到 project structure->module->Dependenices

以上就是基于maven使用IDEA走读TestNG源码(Mac)的详细内容,更多关于maven TestNG源码的资料请关注我们其它相关文章!

(0)

相关推荐

  • IDEA2020.2创建springboot项目卡死在reading maven project的问题

    解决方法一 问题描述: 昨天更新IDEA2020.2版本后,创建springboot项目的时候发现一直在reading maven project 中,如下图,而且一点setting(想修改本地maven路径)时,IDEA就卡死,而且打开任务管理器发现IDEA高占CPU. 原因: 猜测是2020.2版本问题,用其他版本没有出现这类情况. 由于第一次用spring Initializr创建maven的项目,它不会找IDEA自带的maven,也不会找你配置的本地maven,而是重新下载一个全新的ma

  • IDEA自动生成TestNG的testng.xml的插件方法

    某地方见到的,自己实际操作一遍,记录一下.方便以后查询.下载Create TestNG XML 插件,重启IDEA即可. 重启idea,新建Maven项目. pom.xml增加依赖 <dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>6.10</version> </dependency> 产生t

  • VBS定时执行idea程序的Testng文件的方法

    背景: Windows环境cmd命令行执行TestNG文件,会报一些jar包路径问题,所以改用vbs打开idea程序的通过点击快捷键执行testng.xml文件. vbs代码如下: '第一部分:定义变量 Dim RunTime Dim WshShell Set WshShell = WScript.CreateObject("WScript.Shell") '第二部分:输入等待的分钟数(默认:180分钟),等待结束后,会执行第三部分 RunTime = InputBox("P

  • 一篇文章带你解决 IDEA 每次新建项目 maven home directory 总是改变的问题

    Maven是基bai于项目对象模型,可以通du过一小段描述信息来管理zhi项目的构建,报告和文档的软件项dao目管理工具. 重装个系统,各种问题,idea 也出现各种问题 装了个新版的 idea 2020 2.x 版本的,不知道咋回事,其他都好使,就是创建 SpringBoot 项目时: 加载 pom.xml 总是出错,原因就是,新建立的项目 maven home directory 总是乱,没有安装 设置的默认方式 我试了,改当前项目的,不好使 该默认设置,不好使,网上的其他方法也试了,很奇怪

  • 解决 IDEA 2020.2 reading pom.xml 卡死问题

    一.解决方案搜寻 刚出 IDEA 2020.2 版本的时候,当时第一时间更新了.打开公司的项目,没啥问题,但是当打开自己的项目的时候,就会看到右下角显示 reading pom.xml 然后就卡死了.很多次都这样,后来就回滚了 2020.1,直到今天才来再次尝试发现原因和解决方案. 1.1 导致原因的设定 如果有幸点进了 setting 中的 Maven 选项卡,那么可以看到 "Maven home dictionary" 也就是自定义的本地 Maven 路径被改成了 C:\Users

  • MAC下基于maven使用IDEA走读TestNG源码解析

    之前用Python执行程序都是python xxx.py,最近在使用Java技术栈的TestNG,于是想能够也用命令行实现- 创建一个Maven项目 确保已安装了Maven,可使用Maven命令后,使用以下命令可快速创建Maven项目 mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeV

  • Spring Security 基于URL的权限判断源码解析

    目录 1. FilterSecurityInterceptor 源码阅读 2. 自定义基于url的授权 1. FilterSecurityInterceptor 源码阅读 org.springframework.security.web.access.intercept.FilterSecurityInterceptor 通过过滤器实现对HTTP资源进行安全处理. 该安全拦截器所需的 SecurityMetadataSource 类型为 FilterInvocationSecurityMetad

  • 基于java构造方法Vector查找元素源码分析

    目录 前言 get(int)方法分析 contains(Object)方法分析 containsAll()方法分析 indexOf(Object)方法分析 indexOf(Object,index)方法分析 lastIndexOf(Object)方法分析 elementAt(int)方法分析 firstElement()方法分析 lastElement()方法分析 elementData(int)方法分析 总结 (注意:本文基于JDK1.8) 前言 元素在存储到内存中,当我们需要使用在内存中存储

  • 基于java构造方法Vector删除元素源码分析

    目录 前言 remove(int)方法分析 remove(Object)方法分析 removeElement(Object)方法分析 removeElementAt(int)方法分析 removeIf()方法分析 removeAllElement()方法分析 removeAll(Collection)方法分析 父类中的removeAll(Collection)方法分析 retainAll(Collection)方法分析 总结 (注意:本文基于JDK1.8) 前言 包括迭代器中的remove()方

  • 基于java构造方法Vector修改元素源码分析

    目录 前言 set(int,E)方法分析 setElementAt(E,int)方法分析 总结 (注意:本文基于JDK1.8) 前言 增删改查,修改元素,Vector提供了3个方法,包括迭代器中的一个,不过本文只分析Vector自身的两个修改元素的方法,迭代器中的方法将单独分析 set(int,E)方法分析 public synchronized E set(int index, E element) { if (index >= elementCount) throw new ArrayInd

  • 基于java构造方法Vector遍历元素源码分析

    (注意:本文基于JDK1.8) 前言 任何一个容器类对象用于持有元素后,总是需要遍历元素的,即挨个去访问每个元素1次,而遍历元素,除了常规的依赖于数组对象的下标之外,更常用的是封装好的迭代器,今天就来学习Vector中的迭代器是如何设计的,与迭代器相关的方法有: iterator() listIterator() listIterator(int index) 3个Vector中的定义的方法,均会返回一个迭代器对象--简单说说这3个方法的来历 iterator()方法的来历 iterator()

  • Java基于JDK 1.8的LinkedList源码详析

    前言 上周末我们一起分析了ArrayList的源码并进行了一些总结,因为最近在看Collection这一块的东西,下面的图也是大致的总结了Collection里面重要的接口和类,如果没有意外的话后面基本上每一个都会和大家一起学习学习,所以今天也就和大家一起来看看LinkedList吧! 2,记得首次接触LinkedList还是在大学Java的时候,当时说起LinkedList的特性和应用场景:LinkedList基于双向链表适用于增删频繁且查询不频繁的场景,线程不安全的且适用于单线程(这点和Ar

  • Springboot基于Redisson实现Redis分布式可重入锁源码解析

    目录 一.前言 二.为什么使用Redisson 1.我们打开官网 2.我们可以看到官方让我们去使用其他 3.打开官方推荐 4.找到文档 三.Springboot整合Redisson 1.导入依赖 2.以官网为例查看如何配置 3.编写配置类 4.官网测试加锁例子 5.根据官网简单Controller接口编写 6.测试 四.lock.lock()源码分析 1.打开RedissonLock实现类 2.找到实现方法 3.按住Ctrl进去lock方法 4.进去尝试获取锁方法 5.查看tryLockInne

  • Android SwipeRefreshLayout下拉刷新源码解析

    本文实例为大家分享了SwipeRefreshLayout下拉刷新源码,供大家参考,具体内容如下 1.SwipeRefreshLayout是Google在support v4 19.1版本的library更新的一个下拉刷新组件,实现刷新效果更方便. 弊端:只有下拉 //设置刷新控件圈圈的颜色 swipe_refresh_layout.setColorSchemeResources(android.R.color.holo_blue_light, android.R.color.holo_orang

  • maven中下载jar包源码和javadoc的命令介绍

    1:Maven命令下载源码和javadocs 当在IDE中使用Maven时如果想要看引用的jar包中类的源码和javadoc需要通过maven命令下载这些源码,然后再进行引入,通过mvn命令能够容易的达到这个目的: 复制代码 代码如下: mvn dependency:sources mvn dependency:resolve -Dclassifier=javadoc 命令使用方法:首先进入到相应的pom.xml目录中,然后执行以上命令: 第一个命令是尝试下载在pom.xml中依赖的文件的源代码

随机推荐