@@ -24,14 +24,17 @@ fun checkFrameworkDependencies(dependencyPaths: String?) {
2424// TODO: JIRA:1659
2525// check (somehow) that [UtExecutionInstrumentation] is in dependency path: in one of jars or folders
2626
27- val dependencyNames= dependencyPaths
28- .splitToSequence(File .pathSeparatorChar)
27+ val dependencyPathsSequence= dependencyPaths.splitToSequence(File .pathSeparatorChar)
28+
29+ val dependencyNames= dependencyPathsSequence
2930 .mapNotNull { findDependencyName(it) }
3031 .map { it.toLowerCase() }
3132 .toSet()
3233
3334val testFrameworkPatterns= TestFramework .allItems.map { it.patterns() }
34- val testFrameworkFound= dependencyNames.matchesAnyOf(testFrameworkPatterns)
35+ val testFrameworkFound= dependencyNames.matchesAnyOf(testFrameworkPatterns)||
36+ dependencyPathsSequence.any { checkDependencyIsFatJar(it) }
37+
3538if (! testFrameworkFound) {
3639 error("""
3740 Test frameworks are not found in dependency path$dependencyPaths , dependency names are:
@@ -41,7 +44,9 @@ fun checkFrameworkDependencies(dependencyPaths: String?) {
4144 }
4245
4346val mockFrameworkPatterns= MockFramework .allItems.map { it.patterns() }
44- val mockFrameworkFound= dependencyNames.matchesAnyOf(mockFrameworkPatterns)
47+ val mockFrameworkFound= dependencyNames.matchesAnyOf(mockFrameworkPatterns)||
48+ dependencyPathsSequence.any { checkDependencyIsFatJar(it) }
49+
4550if (! mockFrameworkFound) {
4651 error("""
4752 Mock frameworks are not found in dependency path$dependencyPaths , dependency names are:
@@ -75,4 +80,18 @@ private fun findDependencyName(jarPath: String): String? {
7580 }
7681
7782return null
78- }
83+ }
84+
85+ // We consider Fat JARs contain test frameworks and mock frameworks in the dependencies.
86+ private fun checkDependencyIsFatJar (jarPath : String ):Boolean {
87+ try {
88+ val attributes= JarFile (jarPath).manifest.mainAttributes
89+ val jarType= attributes.getValue(" JAR-Type" )
90+
91+ return jarType== " Fat JAR"
92+ }catch (e: Exception ) {
93+ logger.warn {" Unexpected error during parsing$jarPath manifest file$e " }
94+ }
95+
96+ return false
97+ }