亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

一個項目中是否可以只有 1 個 IAnnotationTransformer 實現

一個項目中是否可以只有 1 個 IAnnotationTransformer 實現

元芳怎么了 2023-09-06 15:44:42
在使用 TestNG 的項目中是否可以有超過 1 個 IAnnotationTransformer 實現?我正在使用 TestNg 版本 7.0.0。
查看完整描述

1 回答

?
喵喔喔

TA貢獻1735條經驗 獲得超5個贊

TestNG 目前僅允許您連接IAnnotationTransformer.?如果您嘗試插入其中的多個,則將調用最后添加的一個。

作為替代方案,您可以構建自己的組合,IAnnotationTransformer該組合可用于迭代所有其他注釋轉換器實例。這是一個示例(可以在上面提到的 github 鏈接中找到)

import java.lang.reflect.Constructor;

import java.lang.reflect.Method;

import java.util.Arrays;

import java.util.List;

import org.testng.IAnnotationTransformer;

import org.testng.annotations.ITestAnnotation;

import org.testng.collections.Lists;

import org.testng.internal.ClassHelper;


public class CompositeTransformer implements IAnnotationTransformer {

? private static final String JVM_ARGS =

? ? ? "com.rationaleemotions.github.issue1894.Listener1, com.rationaleemotions.github.issue1894.Listener2";

? private List<IAnnotationTransformer> transformers = Lists.newArrayList();


? public CompositeTransformer() {

? ? // Ideally this would get a value from the command line. But just for demo purposes

? ? // I am hard-coding the values.

? ? String listeners = System.getProperty("transformers", JVM_ARGS);


? ? Arrays.stream(listeners.split(","))

? ? ? ? .forEach(

? ? ? ? ? ? each -> {

? ? ? ? ? ? ? Class<?> clazz = ClassHelper.forName(each.trim());

? ? ? ? ? ? ? IAnnotationTransformer transformer =

? ? ? ? ? ? ? ? ? (IAnnotationTransformer) ClassHelper.newInstance(clazz);

? ? ? ? ? ? ? transformers.add(transformer);

? ? ? ? ? ? });

? }


? @Override

? public void transform(

? ? ? ITestAnnotation annotation, Class testClass, Constructor testConstructor, Method testMethod) {

? ? for (IAnnotationTransformer each : transformers) {

? ? ? each.transform(annotation, testClass, testConstructor, testMethod);

? ? }

? }

}


查看完整回答
反對 回復 2023-09-06
  • 1 回答
  • 0 關注
  • 114 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號