@@ -8,6 +8,7 @@ import com.github.xepozz.testo.isTestoBench
88import com.github.xepozz.testo.isTestoClass
99import com.github.xepozz.testo.isTestoDataProviderLike
1010import com.github.xepozz.testo.isTestoExecutable
11+ import com.github.xepozz.testo.isTestoConfigFile
1112import com.github.xepozz.testo.isTestoFile
1213import com.github.xepozz.testo.isTestoFunction
1314import com.github.xepozz.testo.isTestoMethod
@@ -36,6 +37,7 @@ import com.jetbrains.php.lang.psi.PhpFile
3637import com.jetbrains.php.lang.psi.elements.ClassReference
3738import com.jetbrains.php.lang.psi.elements.Function
3839import com.jetbrains.php.lang.psi.elements.Method
40+ import com.jetbrains.php.lang.psi.elements.NewExpression
3941import com.jetbrains.php.lang.psi.elements.PhpAttribute
4042import com.jetbrains.php.lang.psi.elements.PhpClass
4143import com.jetbrains.php.lang.psi.elements.PhpNamedElement
@@ -63,7 +65,7 @@ class TestoRunConfigurationProducer : PhpTestConfigurationProducer<TestoRunConfi
6365 ): PsiElement ? {
6466 val testRunnerSettings = testRunnerSettings as TestoRunnerSettings
6567
66- if (element is ClassReference && element.fqn == TestoClasses .APPLICATION_CONFIG ) {
68+ if (element is ClassReference && element.parent is NewExpression && element. fqn == TestoClasses .APPLICATION_CONFIG ) {
6769 testRunnerSettings.scope = PhpTestRunnerSettings .Scope .ConfigurationFile
6870 testRunnerSettings.isUseAlternativeConfigurationFile = true
6971 testRunnerSettings.configurationFilePath = virtualFile.path
@@ -126,6 +128,12 @@ class TestoRunConfigurationProducer : PhpTestConfigurationProducer<TestoRunConfi
126128 }
127129 }
128130 }
131+ if (element is PhpFile && element.isTestoConfigFile()) {
132+ testRunnerSettings.scope = PhpTestRunnerSettings .Scope .ConfigurationFile
133+ testRunnerSettings.isUseAlternativeConfigurationFile = true
134+ testRunnerSettings.configurationFilePath = virtualFile.path
135+ return element
136+ }
129137 val result = super .setupConfiguration(testRunnerSettings, element, virtualFile)
130138 return result
131139 }
@@ -134,7 +142,7 @@ class TestoRunConfigurationProducer : PhpTestConfigurationProducer<TestoRunConfi
134142 testRunnerSettings : PhpTestRunnerSettings ,
135143 element : PsiElement
136144 ): Boolean {
137- if (element is ClassReference && element.fqn == TestoClasses .APPLICATION_CONFIG ) {
145+ if (element is ClassReference && element.parent is NewExpression && element. fqn == TestoClasses .APPLICATION_CONFIG ) {
138146 return testRunnerSettings.scope == PhpTestRunnerSettings .Scope .ConfigurationFile
139147 && testRunnerSettings.configurationFilePath == element.containingFile.virtualFile.path
140148 }
@@ -284,7 +292,7 @@ class TestoRunConfigurationProducer : PhpTestConfigurationProducer<TestoRunConfi
284292 }
285293
286294 private fun findTestElement (target : PsiElement ? ): PsiElement ? = when (target) {
287- is ClassReference -> target.takeIf { it.fqn == TestoClasses .APPLICATION_CONFIG }
295+ is ClassReference -> target.takeIf { it.parent is NewExpression && it. fqn == TestoClasses .APPLICATION_CONFIG }
288296 is PhpAttribute -> target.takeIf { it.owner.isTestoExecutable() || it.owner.isTestoDataProviderLike() }
289297 is Function -> target.takeIf { it.isTestoExecutable() || it.isTestoDataProviderLike() }
290298 is PhpClass -> target.takeIf { it.isTestoClass() }
0 commit comments