Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitf198fd1

Browse files
committed
Support for excluding private methods in utbot-gradle (#482)
1 parente150db0 commitf198fd1

File tree

14 files changed

+98
-8
lines changed

14 files changed

+98
-8
lines changed

‎utbot-framework/src/main/kotlin/org/utbot/framework/plugin/sarif/GenerateTestsAndSarifReportFacade.kt‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ class GenerateTestsAndSarifReportFacade(
7171

7272
privatefungenerateTestCases(targetClass:TargetClassWrapper,workingDirectory:Path):List<UtTestCase>=
7373
UtBotTestCaseGenerator.generateForSeveralMethods(
74-
targetClass.targetMethods(),
74+
targetClass.targetMethods,
7575
sarifProperties.mockStrategy,
7676
sarifProperties.classesToMockAlways,
7777
sarifProperties.generationTimeout

‎utbot-framework/src/main/kotlin/org/utbot/framework/plugin/sarif/SarifExtensionProvider.kt‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,11 @@ interface SarifExtensionProvider {
3939
*/
4040
val markGeneratedTestsDirectoryAsTestSourcesRoot:Boolean
4141

42+
/**
43+
* Generate tests for private methods or not.
44+
*/
45+
val testPrivateMethods:Boolean
46+
4247
val testFramework:TestFramework
4348

4449
val mockFramework:MockFramework

‎utbot-framework/src/main/kotlin/org/utbot/framework/plugin/sarif/TargetClassWrapper.kt‎

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import org.utbot.framework.plugin.api.UtMethod
44
importjava.io.File
55
importkotlin.reflect.KCallable
66
importkotlin.reflect.KClass
7+
importkotlin.reflect.KVisibility
78
importkotlin.reflect.jvm.kotlinFunction
89

910
/**
@@ -14,13 +15,22 @@ data class TargetClassWrapper(
1415
valclassUnderTest:KClass<*>,
1516
valsourceCodeFile:File,
1617
valtestsCodeFile:File,
17-
valsarifReportFile:File
18+
valsarifReportFile:File,
19+
valtestPrivateMethods:Boolean =false
1820
) {
1921
/**
2022
* Returns the methods of the class [classUnderTest] declared by the user.
2123
*/
22-
funtargetMethods()=
23-
classUnderTest.java.declaredMethods.map {
24+
val targetMethods:List<UtMethod<*>>=run {
25+
val declaredMethods=classUnderTest.java.declaredMethods.map {
2426
UtMethod(it.kotlinFunctionasKCallable<*>, classUnderTest)
2527
}
28+
if (testPrivateMethods) {
29+
declaredMethods
30+
}else {
31+
declaredMethods.filter {
32+
it.callable.visibility!=KVisibility.PRIVATE
33+
}
34+
}
35+
}
2636
}

‎utbot-gradle/docs/utbot-gradle.md‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ __Groovy:__
4040
generatedTestsRelativeRoot = 'build/generated/test'
4141
sarifReportsRelativeRoot = 'build/generated/sarif'
4242
markGeneratedTestsDirectoryAsTestSourcesRoot = true
43+
testPrivateMethods = false
4344
testFramework = 'junit5'
4445
mockFramework = 'mockito'
4546
generationTimeout = 60000L
@@ -58,6 +59,7 @@ __Kotlin DSL:__
5859
generatedTestsRelativeRoot.set("build/generated/test")
5960
sarifReportsRelativeRoot.set("build/generated/sarif")
6061
markGeneratedTestsDirectoryAsTestSourcesRoot.set(true)
62+
testPrivateMethods.set(false)
6163
testFramework.set("junit5")
6264
mockFramework.set("mockito")
6365
generationTimeout.set(60000L)
@@ -78,6 +80,7 @@ generateTestsAndSarifReport
7880
-PprojectRoot='C:/.../SomeDirectory'
7981
-PgeneratedTestsRelativeRoot='build/generated/test'
8082
-PsarifReportsRelativeRoot='build/generated/sarif'
83+
-PtestPrivateMethods='false'
8184
-PtestFramework=junit5
8285
-PmockFramework=mockito
8386
-PgenerationTimeout=60000
@@ -112,6 +115,10 @@ generateTestsAndSarifReport
112115
- Mark the directory with generated tests as`test sources root` or not.
113116
- By default,`true` is used.
114117

118+
-`testPrivateMethods`&ndash;
119+
- Generate tests for private methods or not.
120+
- By default,`false` is used.
121+
115122
-`testFramework`&ndash;
116123
- The name of the test framework to be used.
117124
- Can be one of:

‎utbot-gradle/src/main/kotlin/org/utbot/gradle/plugin/extension/SarifGradleExtension.kt‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,12 @@ abstract class SarifGradleExtension {
4343
@get:Input
4444
abstractval markGeneratedTestsDirectoryAsTestSourcesRoot:Property<Boolean>
4545

46+
/**
47+
* Generate tests for private methods or not.
48+
*/
49+
@get:Input
50+
abstractval testPrivateMethods:Property<Boolean>
51+
4652
/**
4753
* Can be one of: 'junit4', 'junit5', 'testng'.
4854
*/

‎utbot-gradle/src/main/kotlin/org/utbot/gradle/plugin/extension/SarifGradleExtensionProvider.kt‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,11 @@ class SarifGradleExtensionProvider(
5252
get()= extension.markGeneratedTestsDirectoryAsTestSourcesRoot.orNull
5353
?:true
5454

55+
overrideval testPrivateMethods:Boolean
56+
get()= taskParameters["testPrivateMethods"]?.let { it=="true"}
57+
?: extension.testPrivateMethods.orNull
58+
?:false
59+
5560
overrideval testFramework:TestFramework
5661
get()= (taskParameters["testFramework"]?: extension.testFramework.orNull)
5762
?.let(::testFrameworkParse)

‎utbot-gradle/src/main/kotlin/org/utbot/gradle/plugin/wrappers/SourceSetWrapper.kt‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,8 @@ class SourceSetWrapper(
9090
classUnderTest,
9191
sourceCodeFile,
9292
createTestsCodeFile(classFqn),
93-
createSarifReportFile(classFqn)
93+
createSarifReportFile(classFqn),
94+
parentProject.sarifProperties.testPrivateMethods
9495
)
9596
}
9697

‎utbot-gradle/src/test/kotlin/org/utbot/gradle/plugin/extension/SarifGradleExtensionProviderTest.kt‎

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,43 @@ class SarifGradleExtensionProviderTest {
211211
}
212212
}
213213

214+
@Nested
215+
@DisplayName("testPrivateMethods")
216+
innerclassTestPrivateMethodsTest {
217+
@Test
218+
fun`should be false by default`() {
219+
setTestPrivateMethodsInExtension(null)
220+
assertEquals(false, extensionProvider.testPrivateMethods)
221+
}
222+
223+
@Test
224+
fun`should be provided from the extension`() {
225+
setTestPrivateMethodsInExtension(true)
226+
assertEquals(true, extensionProvider.testPrivateMethods)
227+
}
228+
229+
@Test
230+
fun`should be provided from the task parameters`() {
231+
setTestPrivateMethodsInTaskParameters(true)
232+
assertEquals(true, extensionProvider.testPrivateMethods)
233+
}
234+
235+
@Test
236+
fun`should be provided from the task parameters, not from the extension`() {
237+
setTestPrivateMethodsInTaskParameters(false)
238+
setTestPrivateMethodsInExtension(true)
239+
assertEquals(false, extensionProvider.testPrivateMethods)
240+
}
241+
242+
privatefunsetTestPrivateMethodsInExtension(value:Boolean?) {
243+
Mockito.`when`(extensionMock.testPrivateMethods).thenReturn(createBooleanProperty(value))
244+
}
245+
246+
privatefunsetTestPrivateMethodsInTaskParameters(value:Boolean) {
247+
extensionProvider.taskParameters=mapOf("testPrivateMethods" to"$value")
248+
}
249+
}
250+
214251
@Nested
215252
@DisplayName("testFramework")
216253
innerclassTestFrameworkTest {

‎utbot-maven/docs/utbot-maven.md‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ For example, the following configuration may be used:
4040
<generatedTestsRelativeRoot>target/generated/test</generatedTestsRelativeRoot>
4141
<sarifReportsRelativeRoot>target/generated/sarif</sarifReportsRelativeRoot>
4242
<markGeneratedTestsDirectoryAsTestSourcesRoot>true</markGeneratedTestsDirectoryAsTestSourcesRoot>
43+
<testPrivateMethods>false</testPrivateMethods>
4344
<testFramework>junit5</testFramework>
4445
<mockFramework>mockito</mockFramework>
4546
<generationTimeout>60000L</generationTimeout>
@@ -79,6 +80,10 @@ For example, the following configuration may be used:
7980
- Mark the directory with generated tests as`test sources root` or not.
8081
- By default,`true` is used.
8182

83+
-`testPrivateMethods`&ndash;
84+
- Generate tests for private methods or not.
85+
- By default,`false` is used.
86+
8287
-`testFramework`&ndash;
8388
- The name of the test framework to be used.
8489
- Can be one of:

‎utbot-maven/src/main/kotlin/org/utbot/maven/plugin/GenerateTestsAndSarifReportMojo.kt‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,12 @@ class GenerateTestsAndSarifReportMojo : AbstractMojo() {
7171
@Parameter(defaultValue="true")
7272
internalvar markGeneratedTestsDirectoryAsTestSourcesRoot:Boolean=true
7373

74+
/**
75+
* Generate tests for private methods or not.
76+
*/
77+
@Parameter(defaultValue="false")
78+
internalvar testPrivateMethods:Boolean=false
79+
7480
/**
7581
* Can be one of: 'junit4', 'junit5', 'testng'.
7682
*/

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp