use of com.google.idea.blaze.base.run.BlazeCommandRunConfiguration in project intellij by bazelbuild.
the class BlazePyTestConfigurationProducerTest method testProducedFromPyFile.
@Test
public void testProducedFromPyFile() {
PsiFile pyFile = createAndIndexFile(new WorkspacePath("py/test/unittest.py"), "class UnitTest(googletest.TestCase):", " def testSomething():", " return");
MockBlazeProjectDataBuilder builder = MockBlazeProjectDataBuilder.builder(workspaceRoot);
builder.setTargetMap(TargetMapBuilder.builder().addTarget(TargetIdeInfo.builder().setKind("py_test").setLabel("//py/test:unittests").addSource(sourceRoot("py/test/unittest.py")).build()).build());
registerProjectService(BlazeProjectDataManager.class, new MockBlazeProjectDataManager(builder.build()));
ConfigurationContext context = createContextFromPsi(pyFile);
List<ConfigurationFromContext> configurations = context.getConfigurationsFromContext();
assertThat(configurations).hasSize(1);
ConfigurationFromContext fromContext = configurations.get(0);
assertThat(fromContext.isProducedBy(BlazePyTestConfigurationProducer.class)).isTrue();
assertThat(fromContext.getConfiguration()).isInstanceOf(BlazeCommandRunConfiguration.class);
BlazeCommandRunConfiguration config = (BlazeCommandRunConfiguration) fromContext.getConfiguration();
assertThat(config.getTarget()).isEqualTo(TargetExpression.fromStringSafe("//py/test:unittests"));
assertThat(getTestFilterContents(config)).isNull();
assertThat(getCommandType(config)).isEqualTo(BlazeCommandName.TEST);
}
use of com.google.idea.blaze.base.run.BlazeCommandRunConfiguration in project intellij by bazelbuild.
the class BlazePyDebugRunner method canRun.
@Override
public boolean canRun(String executorId, RunProfile profile) {
if (!DefaultDebugExecutor.EXECUTOR_ID.equals(executorId) || !(profile instanceof BlazeCommandRunConfiguration)) {
return false;
}
BlazeCommandRunConfiguration config = (BlazeCommandRunConfiguration) profile;
BlazeCommandRunConfigurationCommonState handlerState = config.getHandlerStateIfType(BlazeCommandRunConfigurationCommonState.class);
BlazeCommandName command = handlerState != null ? handlerState.getCommandState().getCommand() : null;
return PyDebugUtils.canUsePyDebugger(config.getTargetKind()) && (BlazeCommandName.TEST.equals(command) || BlazeCommandName.RUN.equals(command));
}
use of com.google.idea.blaze.base.run.BlazeCommandRunConfiguration in project intellij by bazelbuild.
the class TestRecorderBlazeCommandRunConfigurationTest method addConfigurations.
private void addConfigurations() {
BlazeCommandRunConfigurationType.BlazeCommandRunConfigurationFactory configurationFactory = BlazeCommandRunConfigurationType.getInstance().getFactory();
BlazeCommandRunConfiguration blazeAndroidBinaryConfiguration = configurationFactory.createTemplateConfiguration(getProject());
blazeAndroidBinaryConfiguration.setName("AndroidBinaryConfiguration");
blazeAndroidBinaryConfiguration.setTarget(Label.create("//label:android_binary_rule"));
BlazeCommandRunConfiguration blazeAndroidTestConfiguration = configurationFactory.createTemplateConfiguration(getProject());
blazeAndroidTestConfiguration.setName("AndroidTestConfiguration");
blazeAndroidTestConfiguration.setTarget(Label.create("//label:android_test_rule"));
runManager.addConfiguration(runManager.createConfiguration(blazeAndroidBinaryConfiguration, configurationFactory), true);
runManager.addConfiguration(runManager.createConfiguration(blazeAndroidTestConfiguration, configurationFactory), true);
}
use of com.google.idea.blaze.base.run.BlazeCommandRunConfiguration in project intellij by bazelbuild.
the class BlazeGoTestConfigurationProducerTest method testProducedFromTestCase.
@Test
public void testProducedFromTestCase() {
PsiFile goFile = createAndIndexFile(new WorkspacePath("foo/bar/foo_test.go"), "package foo", "import \"testing\"", "func TestFoo(t *testing.T) {}");
MockBlazeProjectDataBuilder builder = MockBlazeProjectDataBuilder.builder(workspaceRoot);
builder.setTargetMap(TargetMapBuilder.builder().addTarget(TargetIdeInfo.builder().setKind("go_test").setLabel("//foo/bar:foo_test").addSource(sourceRoot("foo/bar/foo_test.go")).build()).build());
registerProjectService(BlazeProjectDataManager.class, new MockBlazeProjectDataManager(builder.build()));
List<GoFunctionDeclaration> functions = PsiUtils.findAllChildrenOfClassRecursive(goFile, GoFunctionDeclaration.class);
assertThat(functions).hasSize(1);
GoFunctionDeclaration function = functions.get(0);
ConfigurationContext context = createContextFromPsi(function);
List<ConfigurationFromContext> configurations = context.getConfigurationsFromContext();
assertThat(configurations).isNotNull();
assertThat(configurations).hasSize(1);
ConfigurationFromContext fromContext = configurations.get(0);
assertThat(fromContext.isProducedBy(BlazeGoTestConfigurationProducer.class)).isTrue();
assertThat(fromContext.getConfiguration()).isInstanceOf(BlazeCommandRunConfiguration.class);
BlazeCommandRunConfiguration config = (BlazeCommandRunConfiguration) fromContext.getConfiguration();
assertThat(config.getTarget()).isEqualTo(TargetExpression.fromStringSafe("//foo/bar:foo_test"));
assertThat(getTestFilterContents(config)).isEqualTo("--test_filter=^TestFoo$");
assertThat(getCommandType(config)).isEqualTo(BlazeCommandName.TEST);
}
use of com.google.idea.blaze.base.run.BlazeCommandRunConfiguration in project intellij by bazelbuild.
the class BlazeCidrRunConfigurationHandler method createRunner.
@Override
public BlazeCommandRunConfigurationRunner createRunner(Executor executor, ExecutionEnvironment environment) {
RunnerAndConfigurationSettings settings = environment.getRunnerAndConfigurationSettings();
RunConfiguration config = settings != null ? settings.getConfiguration() : null;
if (config instanceof BlazeCommandRunConfiguration && RunConfigurationUtils.canUseClionRunner((BlazeCommandRunConfiguration) config)) {
return new BlazeCidrRunConfigurationRunner((BlazeCommandRunConfiguration) config);
}
return new BlazeCommandGenericRunConfigurationRunner();
}
Aggregations