/*---------------------------------------------------------------- * Copyright (c) ThoughtWorks, Inc. * Licensed under the Apache License, Version 2.0 * See LICENSE.txt in the project root for license information. *----------------------------------------------------------------*/ package com.thoughtworks.gauge.execution; import com.intellij.execution.ExecutionException; import com.intellij.execution.ExecutionResult; import com.intellij.execution.configurations.RunProfile; import com.intellij.execution.configurations.RunProfileState; import com.intellij.execution.runners.DefaultProgramRunner; import com.intellij.execution.runners.ExecutionEnvironment; import com.intellij.execution.runners.RunContentBuilder; import com.intellij.execution.ui.RunContentDescriptor; import com.intellij.openapi.fileEditor.FileDocumentManager; import org.jetbrains.annotations.NotNull; public class GaugeTestRunner extends DefaultProgramRunner { @NotNull public String getRunnerId() { return "GaugeApplicationRunner"; } public boolean canRun(@NotNull String executorId, @NotNull RunProfile profile) { return profile instanceof GaugeRunConfiguration; } protected RunContentDescriptor doExecute(RunProfileState state, ExecutionEnvironment env) throws ExecutionException { FileDocumentManager.getInstance().saveAllDocuments(); ExecutionResult executionResult = state.execute(env.getExecutor(), this); return executionResult == null ? null : new RunContentBuilder(executionResult, env).showRunContent(env.getContentToReuse()); } }