All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.alibaba.cola.test.command.TestMethodRunCmd Maven / Gradle / Ivy

package com.alibaba.cola.test.command;

import com.alibaba.cola.test.TestsContainer;
import org.apache.commons.cli.Option;
import org.apache.commons.cli.Options;
import org.springframework.core.type.filter.RegexPatternTypeFilter;

import java.util.ArrayList;
import java.util.List;

/**
 * TestMethodRunCmd
 *
 * @author Frank Zhang
 * @date 2020-11-17 4:43 PM
 */
public class TestMethodRunCmd extends AbstractCommand {

    private static final String RE_RECORD = "rr";
    public final static String DOT = ".";
    public final static String NOTE_SYMBOL = "#";
    private String methodName;
    private String className;
    /** 是否片段录制*/
    private boolean segmentRecord = false;
    List recordFilters = new ArrayList<>();

    public TestMethodRunCmd(String cmdRaw) {
        super(cmdRaw);
        parseCommand();
    }

    @Override
    protected void action() {
        try {
            TestsContainer.getTestExecutor().execute(this);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    @Override
    protected void initParser(Options options) {
        Option point = Option.builder(RE_RECORD)
                .hasArgs()
                .argName("p1,p2...")
                .valueSeparator(',')
                .desc("A directories list with ',' separate to handle its child files")
                .build();
        options.addOption(point);
    }

    public String getMethodName() {
        return methodName;
    }

    public String getClassName() {
        return className;
    }

    public boolean isSegmentRecord() {
        return segmentRecord;
    }

    private void parseCommand(){
        String cmd = getCommandLine().getArgs()[0];
        if (isEclipseMethod(cmd)) {
            methodName = cmd.substring(cmd.lastIndexOf(DOT)+1, cmd.indexOf("("));
            className = cmd.substring(0, cmd.lastIndexOf(DOT));
        }
        if (isIdeaMethod(cmd)) {
            methodName = cmd.substring(cmd.lastIndexOf(NOTE_SYMBOL)+1, cmd.length());
            className = cmd.substring(0, cmd.lastIndexOf(NOTE_SYMBOL));
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy