mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-13 09:19:13 +07:00
internal discovery test listener: replace code with reflection
This commit is contained in:
@@ -18,7 +18,6 @@
|
||||
<orderEntry type="module" module-name="java-indexing-api" />
|
||||
<orderEntry type="module" module-name="smRunner" />
|
||||
<orderEntry type="library" name="Coverage" level="project" />
|
||||
<orderEntry type="library" name="JUnit3" level="project" />
|
||||
</component>
|
||||
<component name="copyright">
|
||||
<Base>
|
||||
|
||||
+16
-5
@@ -13,7 +13,7 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package com.intellij.execution.testDiscovery;
|
||||
package com.intellij;
|
||||
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.project.ProjectManager;
|
||||
@@ -39,7 +39,8 @@ public class InternalTestDiscoveryListener implements TestListener, Closeable {
|
||||
private final String myTracesDirectory;
|
||||
private List<String> myCompletedMethodNames = new ArrayList<String>();
|
||||
private final Alarm myProcessTracesAlarm;
|
||||
private TestDiscoveryIndex myDiscoveryIndex;
|
||||
private Object myDiscoveryIndex;
|
||||
private Class<?> myDiscoveryIndexClass;
|
||||
|
||||
public InternalTestDiscoveryListener() {
|
||||
myProcessTracesAlarm = new Alarm(Alarm.ThreadToUse.POOLED_THREAD, null);
|
||||
@@ -47,11 +48,12 @@ public class InternalTestDiscoveryListener implements TestListener, Closeable {
|
||||
myModuleName = System.getProperty("org.jetbrains.instrumentation.main.module");
|
||||
}
|
||||
|
||||
private TestDiscoveryIndex getIndex() {
|
||||
private Object getIndex() {
|
||||
if (myDiscoveryIndex == null) {
|
||||
final Project project = ProjectManager.getInstance().getDefaultProject();
|
||||
try {
|
||||
myDiscoveryIndex = (TestDiscoveryIndex)Class.forName(TestDiscoveryIndex.class.getName())
|
||||
myDiscoveryIndexClass = Class.forName("com.intellij.execution.testDiscovery.TestDiscoveryIndex");
|
||||
myDiscoveryIndex = myDiscoveryIndexClass
|
||||
.getConstructor(Project.class, String.class)
|
||||
.newInstance(project, myTracesDirectory);
|
||||
}
|
||||
@@ -91,7 +93,16 @@ public class InternalTestDiscoveryListener implements TestListener, Closeable {
|
||||
protected void flushCurrentTraces() {
|
||||
final String[] fullTestNames = ArrayUtil.toStringArray(myCompletedMethodNames);
|
||||
myCompletedMethodNames.clear();
|
||||
myProcessTracesAlarm.addRequest(() -> TestDiscoveryExtension.processAvailableTraces(fullTestNames, myTracesDirectory, myModuleName, "j", getIndex()), 100);
|
||||
myProcessTracesAlarm.addRequest(() -> {
|
||||
try {
|
||||
final Method method = Class.forName("com.intellij.execution.testDiscovery.TestDiscoveryExtension")
|
||||
.getMethod("processAvailableTraces", fullTestNames.getClass(), myTracesDirectory.getClass(), String.class, String.class, myDiscoveryIndexClass);
|
||||
method.invoke(null, fullTestNames, myTracesDirectory, myModuleName, "j", getIndex());
|
||||
}
|
||||
catch (Throwable e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}, 100);
|
||||
}
|
||||
|
||||
private static String getMethodName(Test test) {
|
||||
Reference in New Issue
Block a user