@@ -31,11 +31,21 @@ pub fn handle_command(args: TestCmdArgs) -> anyhow::Result<()> {
31
31
exclude : args. exclude . clone ( ) ,
32
32
only : args. only . clone ( ) ,
33
33
threads : args. threads ,
34
+ jobs : args. jobs ,
34
35
} )
35
36
} ) ,
36
37
}
37
38
}
38
39
40
+ fn push_optional_args ( cmd_args : & mut Vec < String > , args : & TestCmdArgs ) {
41
+ if let Some ( jobs) = & args. jobs {
42
+ cmd_args. extend ( vec ! [ "--jobs" . to_string( ) , jobs. to_string( ) ] ) ;
43
+ } ;
44
+ if let Some ( threads) = & args. threads {
45
+ cmd_args. extend ( vec ! [ "--" . to_string( ) , "--test-threads" . to_string( ) , threads. to_string( ) ] ) ;
46
+ } ;
47
+ }
48
+
39
49
pub fn run_unit ( target : & Target , args : & TestCmdArgs ) -> Result < ( ) > {
40
50
match target {
41
51
Target :: Workspace => {
@@ -48,15 +58,11 @@ pub fn run_unit(target: &Target, args: &TestCmdArgs) -> Result<()> {
48
58
"--examples" ,
49
59
"--color" ,
50
60
"always" ,
51
- ] ;
52
- let threads_str: String ;
53
- if let Some ( threads) = & args. threads {
54
- threads_str = threads. to_string ( ) ;
55
- cmd_args. extend ( vec ! [ "--" , "--test-threads" , & threads_str] ) ;
56
- } ;
61
+ ] . into_iter ( ) . map ( |s| s. to_string ( ) ) . collect :: < Vec < String > > ( ) ;
62
+ push_optional_args ( & mut cmd_args, args) ;
57
63
run_process_for_workspace (
58
64
"cargo" ,
59
- cmd_args,
65
+ cmd_args. iter ( ) . map ( String :: as_str ) . collect ( ) ,
60
66
& args. exclude ,
61
67
Some ( r".*target/[^/]+/deps/([^-\s]+)" ) ,
62
68
Some ( "Unit Tests" ) ,
@@ -97,16 +103,12 @@ fn run_unit_test(member: &WorkspaceMember, args: &TestCmdArgs) -> Result<(), any
97
103
"--color=always" ,
98
104
"--" ,
99
105
"--color=always" ,
100
- ] ;
101
- let threads_str: String ;
102
- if let Some ( threads) = & args. threads {
103
- threads_str = threads. to_string ( ) ;
104
- cmd_args. extend ( vec ! [ "--" , "--test-threads" , & threads_str] ) ;
105
- } ;
106
+ ] . into_iter ( ) . map ( |s| s. to_string ( ) ) . collect :: < Vec < String > > ( ) ;
107
+ push_optional_args ( & mut cmd_args, args) ;
106
108
run_process_for_package (
107
109
"cargo" ,
108
110
& member. name ,
109
- & cmd_args,
111
+ & cmd_args. iter ( ) . map ( String :: as_str ) . collect ( ) ,
110
112
& args. exclude ,
111
113
& args. only ,
112
114
& format ! ( "Failed to execute unit test for '{}'" , & member. name) ,
@@ -131,15 +133,11 @@ pub fn run_integration(target: &Target, args: &TestCmdArgs) -> anyhow::Result<()
131
133
"test_*" ,
132
134
"--color" ,
133
135
"always" ,
134
- ] ;
135
- let threads_str: String ;
136
- if let Some ( threads) = & args. threads {
137
- threads_str = threads. to_string ( ) ;
138
- cmd_args. extend ( vec ! [ "--" , "--test-threads" , & threads_str] ) ;
139
- } ;
136
+ ] . into_iter ( ) . map ( |s| s. to_string ( ) ) . collect :: < Vec < String > > ( ) ;
137
+ push_optional_args ( & mut cmd_args, args) ;
140
138
run_process_for_workspace (
141
139
"cargo" ,
142
- cmd_args,
140
+ cmd_args. iter ( ) . map ( String :: as_str ) . collect ( ) ,
143
141
& args. exclude ,
144
142
Some ( r".*target/[^/]+/deps/([^-\s]+)" ) ,
145
143
Some ( "Integration Tests" ) ,
@@ -178,16 +176,12 @@ fn run_integration_test(member: &WorkspaceMember, args: &TestCmdArgs) -> Result<
178
176
& member. name,
179
177
"--color" ,
180
178
"always" ,
181
- ] ;
182
- let threads_str: String ;
183
- if let Some ( threads) = & args. threads {
184
- threads_str = threads. to_string ( ) ;
185
- cmd_args. extend ( vec ! [ "--" , "--test-threads" , & threads_str] ) ;
186
- } ;
179
+ ] . into_iter ( ) . map ( |s| s. to_string ( ) ) . collect :: < Vec < String > > ( ) ;
180
+ push_optional_args ( & mut cmd_args, args) ;
187
181
run_process_for_package (
188
182
"cargo" ,
189
183
& member. name ,
190
- & cmd_args,
184
+ & cmd_args. iter ( ) . map ( String :: as_str ) . collect ( ) ,
191
185
& args. exclude ,
192
186
& args. only ,
193
187
& format ! ( "Failed to execute integration test for '{}'" , & member. name) ,
0 commit comments