Skip to content

Commit dcdab25

Browse files
committed
Refactor code
1 parent 48aeb8e commit dcdab25

File tree

4 files changed

+161
-151
lines changed

4 files changed

+161
-151
lines changed

autoload/javaunit.vim

Lines changed: 135 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,144 @@
11
let s:save_cpo = &cpo
22
set cpo&vim
3+
34
if exists('g:JavaUnit_autoload')
45
finish
56
endif
67
let g:JavaUnit_autoload = 1
7-
let s:Fsep = javaunit#util#Fsep()
88

9+
let s:Fsep = javaunit#util#Fsep()
910
let s:Psep = javaunit#util#Psep()
11+
12+
let g:JavaUnit_Home = fnamemodify(expand('<sfile>'), ':p:h:h:gs?\\?'. s:Fsep. '?')
13+
14+
if exists("g:JavaUnit_custom_tempdir")
15+
let s:JavaUnit_tempdir = g:JavaUnit_custom_tempdir
16+
else
17+
let s:JavaUnit_tempdir = g:JavaUnit_Home .s:Fsep .'bin'
18+
endif
19+
20+
let s:JavaUnit_TestMethod_Source =
21+
\g:JavaUnit_Home
22+
\.s:Fsep
23+
\.join(['src','com','wsdjeg','util','TestMethod.java'],s:Fsep)
24+
25+
if findfile(s:JavaUnit_tempdir.join(['','com','wsdjeg','util','TestMethod.class'],s:Fsep))==""
26+
call javaunit#Compile()
27+
endif
28+
29+
function! javaunit#Compile() abort
30+
silent exec '!javac -encoding utf8 -d "'.s:JavaUnit_tempdir.'" "'.s:JavaUnit_TestMethod_Source .'"'
31+
endfunction
32+
33+
function javeunit#TestMethod(args,...)
34+
let line = getline(search("package","nb",getline("0$")))
35+
if line != ''
36+
let currentClassName = split(split(line," ")[1],";")[0].".".expand("%:t:r")
37+
else
38+
let currentClassName = expand("%:t:r")
39+
endif
40+
if a:args == ""
41+
let cwords = split(airline#extensions#tagbar#currenttag(),'(')[0]
42+
if filereadable('pom.xml')
43+
let cmd='java -cp "'
44+
\.s:JavaUnit_tempdir
45+
\.s:Psep
46+
\.getcwd()
47+
\.join(['','target','test-classes'],s:Fsep)
48+
\.s:Psep
49+
\.get(g:,'JavaComplete_LibsPath','.')
50+
\.'" com.wsdjeg.util.TestMethod '
51+
\.currentClassName
52+
\.' '
53+
\.cwords
54+
else
55+
let cmd='java -cp "'
56+
\.s:JavaUnit_tempdir
57+
\.s:Psep
58+
\.get(g:,'JavaComplete_LibsPath','.')
59+
\.'" com.wsdjeg.util.TestMethod '
60+
\.currentClassName
61+
\.' '
62+
\.cwords
63+
endif
64+
call unite#start([['output/shellcmd', cmd]], {'log': 1, 'wrap': 1})
65+
else
66+
if filereadable('pom.xml')
67+
let cmd='java -cp "'
68+
\.s:JavaUnit_tempdir
69+
\.s:Psep
70+
\.getcwd()
71+
\.join(['','target','test-classes'],s:Fsep)
72+
\.s:Psep
73+
\.get(g:,'JavaComplete_LibsPath','.')
74+
\.'" com.wsdjeg.util.TestMethod '
75+
\.currentClassName
76+
\.' '
77+
\.a:args
78+
else
79+
let cmd='java -cp "'
80+
\.s:JavaUnit_tempdir
81+
\.s:Psep
82+
\.get(g:,'JavaComplete_LibsPath','.')
83+
\.'" com.wsdjeg.util.TestMethod '
84+
\.currentClassName
85+
\.' '
86+
\.a:args
87+
endif
88+
call unite#start([['output/shellcmd', cmd]], {'log': 1, 'wrap': 1})
89+
endif
90+
endfunction
91+
92+
function javaunit#TestAllMethods()
93+
let line = getline(search("package","nb",getline("0$")))
94+
let currentClassName = split(split(line," ")[1],";")[0].".".expand("%:t:r")
95+
let cmd='java -cp "'.s:JavaUnit_tempdir.s:Psep.g:JavaComplete_LibsPath.'" com.wsdjeg.util.TestMethod '.currentClassName
96+
call unite#start([['output/shellcmd', cmd]], {'log': 1, 'wrap': 1})
97+
endfunction
98+
99+
100+
function javaunit#MavenTest()
101+
let line = getline(search("package","nb",getline("0$")))
102+
let currentClassName = split(split(line," ")[1],";")[0].".".expand("%:t:r")
103+
let cmd = 'mvn test -Dtest='.currentClassName.'|ag --nocolor "^[^[]"'
104+
call unite#start([['output/shellcmd', cmd]], {'log': 1, 'wrap': 1})
105+
endfunction
106+
107+
function javaunit#MavenTestAll()
108+
let cmd = 'mvn test|ag --nocolor "^[^[]"'
109+
call unite#start([['output/shellcmd', cmd]], {'log': 1, 'wrap': 1})
110+
endfunction
111+
112+
function javaunit#NewTestClass(classNAME)
113+
let filePath = expand("%:h")
114+
let flag = 0
115+
let packageName = ''
116+
for a in split(filePath,s:Fsep)
117+
if flag
118+
if a == expand("%:h:t")
119+
let packageName .= a.';'
120+
else
121+
let packageName .= a.'.'
122+
endif
123+
endif
124+
if a == "java"
125+
let flag = 1
126+
endif
127+
endfor
128+
call append(0,"package ".packageName)
129+
call append(1,"import org.junit.Test;")
130+
call append(2,"import org.junit.Assert;")
131+
call append(3,"public class ".a:classNAME." {")
132+
call append(4,"@Test")
133+
call append(5,"public void testM() {")
134+
call append(6,"//TODO")
135+
call append(7,"}")
136+
call append(8,"}")
137+
call feedkeys("gg=G","n")
138+
call feedkeys("/testM\<cr>","n")
139+
call feedkeys("viw","n")
140+
"call feedkeys("/TODO\<cr>","n")
141+
endfunction
10142
function! javaunit#Get_method_name() abort
11143
let name = 'sss'
12144
return name
@@ -21,7 +153,7 @@ function! javaunit#TestMain() abort
21153
endif
22154
if filereadable('pom.xml')
23155
let cmd='java -cp "'
24-
\.g:JavaUnit_tempdir
156+
\.s:JavaUnit_tempdir
25157
\.s:Psep
26158
\.getcwd()
27159
\.join(['','target','test-classes'],s:Fsep)
@@ -31,7 +163,7 @@ function! javaunit#TestMain() abort
31163
\.currentClassName
32164
else
33165
let cmd='java -cp "'
34-
\.g:JavaUnit_tempdir
166+
\.s:JavaUnit_tempdir
35167
\.s:Psep
36168
\.get(g:,'JavaComplete_LibsPath','.')
37169
\.'" '

autoload/javaunit/util.vim

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ if exists('g:javaunit_util_loaded')
55
endif
66
let g:javaunit_util_loaded = 1
77

8+
89
function! s:OSX()
910
return has('macunix')
1011
endfunction
@@ -31,5 +32,14 @@ function! javaunit#util#Psep() abort
3132
endif
3233
endfunction
3334

35+
36+
function JavaUnitEscapeCMD(cmd)
37+
let s:cmd = substitute(a:cmd,' ','\\ ','g')
38+
let s:cmd = substitute(s:cmd,'\','\\\','g')
39+
let s:cmd = substitute(s:cmd,';','\\;','g')
40+
let s:cmd = substitute(s:cmd, '\t', '\\t', 'g')
41+
return substitute(s:cmd,':','\\:','g')
42+
endfunction
43+
3444
let &cpo = s:save_cpo
3545
unlet s:save_cpo

plugin/javaunit.vim

Lines changed: 16 additions & 143 deletions
Original file line numberDiff line numberDiff line change
@@ -4,163 +4,36 @@ set cpo&vim
44
if exists('g:JavaUnit_loaded')
55
finish
66
endif
7-
let g:JavaUnit_loaded = 1
8-
9-
let s:Fsep = javaunit#util#Fsep()
10-
11-
let s:Psep = javaunit#util#Psep()
12-
13-
let g:JavaUnit_Home = fnamemodify(expand('<sfile>'), ':p:h:h:gs?\\?'. s:Fsep. '?')
14-
15-
if exists("g:JavaUnit_custom_tempdir")
16-
let g:JavaUnit_tempdir = g:JavaUnit_custom_tempdir
17-
else
18-
let g:JavaUnit_tempdir = g:JavaUnit_Home .s:Fsep .'bin'
19-
endif
20-
21-
let s:JavaUnit_TestMethod_Source = g:JavaUnit_Home .s:Fsep .join(['src','com','wsdjeg','util','TestMethod.java'],s:Fsep)
22-
23-
lockvar! s:JavaUnit_TestMethod_Source g:JavaUnit_tempdir
24-
25-
if findfile(g:JavaUnit_tempdir.join(['','com','wsdjeg','util','TestMethod.class'],s:Fsep))==""
26-
silent exec '!javac -encoding utf8 -d "'.g:JavaUnit_tempdir.'" "'.s:JavaUnit_TestMethod_Source .'"'
27-
endif
28-
29-
function JaveUnitTestMethod(args,...)
30-
let line = getline(search("package","nb",getline("0$")))
31-
if line != ''
32-
let currentClassName = split(split(line," ")[1],";")[0].".".expand("%:t:r")
33-
else
34-
let currentClassName = expand("%:t:r")
35-
endif
36-
if a:args == ""
37-
let cwords = split(airline#extensions#tagbar#currenttag(),'(')[0]
38-
if filereadable('pom.xml')
39-
let cmd='java -cp "'
40-
\.g:JavaUnit_tempdir
41-
\.s:Psep
42-
\.getcwd()
43-
\.join(['','target','test-classes'],s:Fsep)
44-
\.s:Psep
45-
\.get(g:,'JavaComplete_LibsPath','.')
46-
\.'" com.wsdjeg.util.TestMethod '
47-
\.currentClassName
48-
\.' '
49-
\.cwords
50-
else
51-
let cmd='java -cp "'
52-
\.g:JavaUnit_tempdir
53-
\.s:Psep
54-
\.get(g:,'JavaComplete_LibsPath','.')
55-
\.'" com.wsdjeg.util.TestMethod '
56-
\.currentClassName
57-
\.' '
58-
\.cwords
59-
endif
60-
call unite#start([['output/shellcmd', cmd]], {'log': 1, 'wrap': 1})
61-
else
62-
if filereadable('pom.xml')
63-
let cmd='java -cp "'
64-
\.g:JavaUnit_tempdir
65-
\.s:Psep
66-
\.getcwd()
67-
\.join(['','target','test-classes'],s:Fsep)
68-
\.s:Psep
69-
\.get(g:,'JavaComplete_LibsPath','.')
70-
\.'" com.wsdjeg.util.TestMethod '
71-
\.currentClassName
72-
\.' '
73-
\.a:args
74-
else
75-
let cmd='java -cp "'
76-
\.g:JavaUnit_tempdir
77-
\.s:Psep
78-
\.get(g:,'JavaComplete_LibsPath','.')
79-
\.'" com.wsdjeg.util.TestMethod '
80-
\.currentClassName
81-
\.' '
82-
\.a:args
83-
endif
84-
call unite#start([['output/shellcmd', cmd]], {'log': 1, 'wrap': 1})
85-
endif
86-
endfunction
87-
88-
function JavaUnitTestAllMethods()
89-
let line = getline(search("package","nb",getline("0$")))
90-
let currentClassName = split(split(line," ")[1],";")[0].".".expand("%:t:r")
91-
let cmd='java -cp "'.g:JavaUnit_tempdir.s:Psep.g:JavaComplete_LibsPath.'" com.wsdjeg.util.TestMethod '.currentClassName
92-
call unite#start([['output/shellcmd', cmd]], {'log': 1, 'wrap': 1})
93-
endfunction
947

95-
function JavaUnitEscapeCMD(cmd)
96-
let s:cmd = substitute(a:cmd,' ','\\ ','g')
97-
let s:cmd = substitute(s:cmd,'\','\\\','g')
98-
let s:cmd = substitute(s:cmd,';','\\;','g')
99-
let s:cmd = substitute(s:cmd, '\t', '\\t', 'g')
100-
return substitute(s:cmd,':','\\:','g')
101-
endfunction
102-
103-
function JavaUnitMavenTest()
104-
let line = getline(search("package","nb",getline("0$")))
105-
let currentClassName = split(split(line," ")[1],";")[0].".".expand("%:t:r")
106-
let cmd = 'mvn test -Dtest='.currentClassName.'|ag --nocolor "^[^[]"'
107-
call unite#start([['output/shellcmd', cmd]], {'log': 1, 'wrap': 1})
108-
endfunction
109-
110-
function JavaUnitMavenTestAll()
111-
let cmd = 'mvn test|ag --nocolor "^[^[]"'
112-
call unite#start([['output/shellcmd', cmd]], {'log': 1, 'wrap': 1})
113-
endfunction
114-
115-
function JavaUnitNewClass(classNAME)
116-
let filePath = expand("%:h")
117-
let flag = 0
118-
let packageName = ''
119-
for a in split(filePath,s:Fsep)
120-
if flag
121-
if a == expand("%:h:t")
122-
let packageName .= a.';'
123-
else
124-
let packageName .= a.'.'
125-
endif
126-
endif
127-
if a == "java"
128-
let flag = 1
129-
endif
130-
endfor
131-
call append(0,"package ".packageName)
132-
call append(1,"import org.junit.Test;")
133-
call append(2,"import org.junit.Assert;")
134-
call append(3,"public class ".a:classNAME." {")
135-
call append(4,"@Test")
136-
call append(5,"public void testM() {")
137-
call append(6,"//TODO")
138-
call append(7,"}")
139-
call append(8,"}")
140-
call feedkeys("gg=G","n")
141-
call feedkeys("/testM\<cr>","n")
142-
call feedkeys("viw","n")
143-
"call feedkeys("/TODO\<cr>","n")
144-
endfunction
8+
let g:JavaUnit_loaded = 1
1459

14610
command! -nargs=*
14711
\ JavaUnitTest
148-
\ call JaveUnitTestMethod(<q-args>)
12+
\ call javaunit#TestMethod(<q-args>)
13+
14914
command! -nargs=0
15015
\ JavaUnitExec
15116
\ call javaunit#TestMain()
17+
15218
command! -nargs=0
15319
\ JavaUnitTestAll
154-
\ call JavaUnitTestAllMethods()
20+
\ call javaunit#TestAllMethods()
21+
15522
command! -nargs=0
15623
\ JavaUnitTestMaven
157-
\ call JavaUnitMavenTest()
24+
\ call javaunit#MavenTest()
25+
15826
command! -nargs=0
15927
\ JavaUnitTestMavenAll
160-
\ call JavaUnitMavenTestAll()
28+
\ call javaunit#MavenTestAll()
29+
16130
command! -nargs=? -complete=file
162-
\ JavaUnitTestNewClass
163-
\ call JavaUnitNewClass(expand("%:t:r"))
31+
\ JavaUnitNewTestClass
32+
\ call javaunit#NewTestClass(expand("%:t:r"))
33+
34+
command! -nargs=0
35+
\ JavaUnitCompile
36+
\ call javaunit#Compile()
16437

16538
let &cpo = s:save_cpo
16639
unlet s:save_cpo

src/com/wsdjeg/util/TestMethod.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,6 @@
22

33
import java.lang.reflect.Method;
44

5-
/**本类为java方法测试类,使用前需将需要测试的源文件编译成class文件,之后运行
6-
* java -cp [制定classpath,包括本测试类 以及源文件的] com.wsdjeg.util.TestMethod [待测试类全类名] [待测试方法名]
7-
*
8-
*
9-
*/
105
public class TestMethod{
116
public static void main(String[] args) {
127
if(args.length == 2){

0 commit comments

Comments
 (0)