@@ -106,6 +106,28 @@ const UI_OPTION_KEYS_BY_FORMAT = {
106106 ] ,
107107 gherkin : [ 'showHeadings' , 'leftIndent' , 'inCellPadding' , 'prettyPrint' ] ,
108108 asciitable : [ 'style' ] ,
109+ junit4 : [ 'suiteName' , 'testNamePrefix' , 'includeSetup' , 'prettyPrint' , 'dataSourceStrategy' ] ,
110+ junit5 : [ 'suiteName' , 'testNamePrefix' , 'includeSetup' , 'prettyPrint' , 'dataSourceStrategy' ] ,
111+ junit6 : [ 'suiteName' , 'testNamePrefix' , 'includeSetup' , 'prettyPrint' , 'dataSourceStrategy' ] ,
112+ testng : [ 'suiteName' , 'testNamePrefix' , 'includeSetup' , 'prettyPrint' , 'dataSourceStrategy' ] ,
113+ pytest : [ 'suiteName' , 'testNamePrefix' , 'includeSetup' , 'prettyPrint' , 'dataSourceStrategy' ] ,
114+ unittest : [ 'suiteName' , 'testNamePrefix' , 'includeSetup' , 'prettyPrint' , 'dataSourceStrategy' ] ,
115+ nose2 : [ 'suiteName' , 'testNamePrefix' , 'includeSetup' , 'prettyPrint' , 'dataSourceStrategy' ] ,
116+ jest : [ 'suiteName' , 'testNamePrefix' , 'includeSetup' , 'prettyPrint' , 'dataSourceStrategy' ] ,
117+ vitest : [ 'suiteName' , 'testNamePrefix' , 'includeSetup' , 'prettyPrint' , 'dataSourceStrategy' ] ,
118+ mocha : [ 'suiteName' , 'testNamePrefix' , 'includeSetup' , 'prettyPrint' , 'dataSourceStrategy' ] ,
119+ xunit : [ 'suiteName' , 'testNamePrefix' , 'includeSetup' , 'prettyPrint' , 'dataSourceStrategy' ] ,
120+ nunit : [ 'suiteName' , 'testNamePrefix' , 'includeSetup' , 'prettyPrint' , 'dataSourceStrategy' ] ,
121+ mstest : [ 'suiteName' , 'testNamePrefix' , 'includeSetup' , 'prettyPrint' , 'dataSourceStrategy' ] ,
122+ rspec : [ 'suiteName' , 'testNamePrefix' , 'includeSetup' , 'prettyPrint' , 'dataSourceStrategy' ] ,
123+ minitest : [ 'suiteName' , 'testNamePrefix' , 'includeSetup' , 'prettyPrint' , 'dataSourceStrategy' ] ,
124+ phpunit : [ 'suiteName' , 'testNamePrefix' , 'includeSetup' , 'prettyPrint' , 'dataSourceStrategy' ] ,
125+ pest : [ 'suiteName' , 'testNamePrefix' , 'includeSetup' , 'prettyPrint' , 'dataSourceStrategy' ] ,
126+ kotest : [ 'suiteName' , 'testNamePrefix' , 'includeSetup' , 'prettyPrint' , 'dataSourceStrategy' ] ,
127+ 'junit5-kotlin' : [ 'suiteName' , 'testNamePrefix' , 'includeSetup' , 'prettyPrint' , 'dataSourceStrategy' ] ,
128+ spek : [ 'suiteName' , 'testNamePrefix' , 'includeSetup' , 'prettyPrint' , 'dataSourceStrategy' ] ,
129+ 'test-more' : [ 'suiteName' , 'testNamePrefix' , 'includeSetup' , 'prettyPrint' , 'dataSourceStrategy' ] ,
130+ 'test2-suite' : [ 'suiteName' , 'testNamePrefix' , 'includeSetup' , 'prettyPrint' , 'dataSourceStrategy' ] ,
109131} ;
110132const UI_OPTION_TIPS_BY_FORMAT = {
111133 csv : {
@@ -121,6 +143,83 @@ const UI_OPTION_TIPS_BY_FORMAT = {
121143 quoteChar : 'Character used to quote string values.' ,
122144 escapeChar : 'Character used to escape quote characters inside field values.' ,
123145 } ,
146+ junit4 : {
147+ suiteName : 'Name of generated Java test class.' ,
148+ testNamePrefix : 'Prefix for generated test method name.' ,
149+ includeSetup : 'Include @Before setup scaffold.' ,
150+ prettyPrint : 'Format generated output for readability.' ,
151+ dataSourceStrategy : 'Provider/method, inline, or csv source style.' ,
152+ } ,
153+ junit5 : {
154+ suiteName : 'Name of generated Java test class.' ,
155+ testNamePrefix : 'Prefix for generated test method name.' ,
156+ includeSetup : 'Include @BeforeEach setup scaffold.' ,
157+ prettyPrint : 'Format generated output for readability.' ,
158+ dataSourceStrategy : 'Provider/method, inline, or csv source style.' ,
159+ } ,
160+ junit6 : {
161+ suiteName : 'Name of generated Java test class.' ,
162+ testNamePrefix : 'Prefix for generated test method name.' ,
163+ includeSetup : 'Include @BeforeEach setup scaffold.' ,
164+ prettyPrint : 'Format generated output for readability.' ,
165+ dataSourceStrategy : 'Provider/method, inline, or csv source style.' ,
166+ } ,
167+ testng : {
168+ suiteName : 'Name of generated Java test class.' ,
169+ testNamePrefix : 'Prefix for generated test method name.' ,
170+ includeSetup : 'Include @BeforeMethod setup scaffold.' ,
171+ prettyPrint : 'Format generated output for readability.' ,
172+ dataSourceStrategy : 'Provider/method or inline style.' ,
173+ } ,
174+ pytest : {
175+ suiteName : 'Name hint for generated test suite.' ,
176+ testNamePrefix : 'Prefix for generated test function name.' ,
177+ includeSetup : 'Include fixture scaffold and inject it into test signature.' ,
178+ prettyPrint : 'Format generated output for readability.' ,
179+ dataSourceStrategy : 'Provider function or inline rows.' ,
180+ } ,
181+ jest : {
182+ suiteName : 'Name of generated Jest describe block.' ,
183+ testNamePrefix : 'Prefix for generated test name.' ,
184+ includeSetup : 'Include beforeEach setup scaffold.' ,
185+ prettyPrint : 'Format generated output for readability.' ,
186+ dataSourceStrategy : 'Provider function or inline rows.' ,
187+ } ,
188+ xunit : {
189+ suiteName : 'Name of generated C# test class.' ,
190+ testNamePrefix : 'Prefix for generated test method name.' ,
191+ includeSetup : 'Include constructor setup scaffold.' ,
192+ prettyPrint : 'Format generated output for readability.' ,
193+ dataSourceStrategy : 'MemberData provider or InlineData.' ,
194+ } ,
195+ rspec : {
196+ suiteName : 'Name of generated RSpec describe block.' ,
197+ testNamePrefix : 'Prefix for generated test name.' ,
198+ includeSetup : 'Include before block scaffold.' ,
199+ prettyPrint : 'Format generated output for readability.' ,
200+ dataSourceStrategy : 'Rows constant iteration style.' ,
201+ } ,
202+ phpunit : {
203+ suiteName : 'Name of generated PHPUnit test class.' ,
204+ testNamePrefix : 'Prefix for generated test method name.' ,
205+ includeSetup : 'Include setUp() scaffold.' ,
206+ prettyPrint : 'Format generated output for readability.' ,
207+ dataSourceStrategy : 'Data provider rows style.' ,
208+ } ,
209+ kotest : {
210+ suiteName : 'Name of generated Kotest spec class.' ,
211+ testNamePrefix : 'Prefix for generated test name.' ,
212+ includeSetup : 'Include beforeTest setup scaffold.' ,
213+ prettyPrint : 'Format generated output for readability.' ,
214+ dataSourceStrategy : 'Rows collection iteration style.' ,
215+ } ,
216+ 'test-more' : {
217+ suiteName : 'Name hint for generated Perl test script.' ,
218+ testNamePrefix : 'Prefix used in assertion labels.' ,
219+ includeSetup : 'Include setup variable scaffold.' ,
220+ prettyPrint : 'Format generated output for readability.' ,
221+ dataSourceStrategy : 'Row hash iteration style.' ,
222+ } ,
124223} ;
125224
126225function createExporterForDefaults ( ) {
@@ -138,6 +237,15 @@ function contentTypeForFormat(outputFormat) {
138237 if ( format === 'python' ) return 'text/x-python; charset=utf-8' ;
139238 if ( format === 'java' ) return 'text/x-java-source; charset=utf-8' ;
140239 if ( format === 'typescript' ) return 'application/typescript; charset=utf-8' ;
240+ if ( format === 'junit4' || format === 'junit5' || format === 'junit6' || format === 'testng' )
241+ return 'text/x-java-source; charset=utf-8' ;
242+ if ( format === 'pytest' || format === 'unittest' || format === 'nose2' ) return 'text/x-python; charset=utf-8' ;
243+ if ( format === 'jest' || format === 'vitest' || format === 'mocha' ) return 'text/javascript; charset=utf-8' ;
244+ if ( format === 'xunit' || format === 'nunit' || format === 'mstest' ) return 'text/x-csharp; charset=utf-8' ;
245+ if ( format === 'rspec' || format === 'minitest' ) return 'text/x-ruby; charset=utf-8' ;
246+ if ( format === 'phpunit' || format === 'pest' ) return 'application/x-httpd-php; charset=utf-8' ;
247+ if ( format === 'kotest' || format === 'junit5-kotlin' || format === 'spek' ) return 'text/x-kotlin; charset=utf-8' ;
248+ if ( format === 'test-more' || format === 'test2-suite' ) return 'text/x-perl; charset=utf-8' ;
141249 if ( format === 'xml' ) return 'application/xml; charset=utf-8' ;
142250 if ( format === 'sql' ) return 'application/sql; charset=utf-8' ;
143251 if ( format === 'gherkin' ) return 'text/x-gherkin; charset=utf-8' ;
0 commit comments