Intellij Idea Apple硅无法读取Gradle测试中的环境变量

brtdzjyr  于 2023-01-20  发布在  其他
关注(0)|答案(2)|浏览(226)

我正在使用苹果硅(M1处理器)开发的Spring启动应用程序。
我的JVM如下所示。

openjdk version "1.8.0_282"
OpenJDK Runtime Environment (Zulu 8.52.0.23-CA-macos-aarch64) (build 1.8.0_282-b08)
OpenJDK 64-Bit Server VM (Zulu 8.52.0.23-CA-macos-aarch64) (build 25.282-b08, mixed mode)

我使用的是gradle-6.8.3-all.zip版本的Gradle。
src/test/resources下有一个名为application-test.properties的属性文件,其变量如下。

test.environment.variable=${TEST_ENV}

我阅读这个变量的测试代码如下所示。

@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@TestPropertySource(locations = "classpath:application-test.properties")
public class EnvironmentVariableReadTest {

    @Autowired
    private TestService testService;

    @Test
    public void environmentVariableReadTest() {
        String variable = testService.getEnvironmentVariableFromAutowiredComponent();
        assertNotNull(variable);
        System.out.println(variable + " is not null");
    }
}
  • X1 M3 N1 X和X1 M4 N1 X的每一个在下面描述。
// TestService

@Service
@RequiredArgsConstructor
public class TestService {

    private final TestComponent testComponent;

    public String getEnvironmentVariableFromAutowiredComponent() {
        return testComponent.getEnvironmentVariable();
    }
}

// TestComponent

@Component
@Getter
public class TestComponent {

    @Value("${test.environment.variable}")
    private String environmentVariable;
}

我使用下面屏幕截图中的方法设置环境变量。
x1c 0d1x作为测试结果,我得到下面的错误。

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'testComponent': Injection of autowired dependencies failed; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'TEST_ENV' in value "${TEST_ENV}"

我要求JetBrains帮助中心解决这个问题,我得到的唯一答案是,这不会发生在他们的计算机上。我已经检查了这个测试代码在Windows和Linux上的作品。此外,我已经尝试清理重新安装IntelliJ几次在这台机器上(苹果硅MacBook Pro)。
示例项目可在--〉Project Link中复制

1tu0hz3e

1tu0hz3e1#

我遇到过一个非常类似的问题,不幸的是,在我的情况下,解决方案是通过Rosetta 2使用JDK或将Gradle升级到版本7. x. x。

von4xj4u

von4xj4u2#

打开Gradle设置:

Build and run usingRun and test using更改为Intellij Idea

相关问题