我有一个项目,其中< code>repository及其测试- repository.tests
位于不同的模块中。我喜欢这样组织我的项目。问题是,当我试图运行测试时,Spring说没有这样的bean。下面是详细的错误消息。我不明白黑魔法泉在这里做什么,为什么它会耗尽法力。
[错误] 应返回所有经过的时间: 0.009 秒
到目前为止我所尝试的:
src/test/java
,而存储库转到src/main/java
)--项目结构如下所示,有问题的部分是存储库
和repository.tests
com.encyclopedia-galactica.sourceformats:application
+- com.encyclopeia-galactica.sourceformats:entities
+- com.encyclopeia-galactica.sourceformats:entities.tests
+- com.encyclopeia-galactica.sourceformats:dtos
+- com.encyclopeia-galactica.sourceformats:dtos.tests
+- com.encyclopeia-galactica.sourceformats:mappers.interfaces
+- com.encyclopeia-galactica.sourceformats:mappers.implementations
+- com.encyclopeia-galactica.sourceformats:mappers.tests
+- com.encyclopeia-galactica.sourceformats:controllers
+- com.encyclopeia-galactica.sourceformats:controllers.tests
+- com.encyclopeia-galactica.sourceformats:repositories
+- com.encyclopeia-galactica.sourceformats:repositories.tests
+- com.encyclopeia-galactica.sourceformats:services
+- com.encyclopeia-galactica.sourceformats:services.tests
< code >存储库的pom.xml:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.1</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>com.encyclopeia-galactica.sourceformats</groupId>
<artifactId>repositories</artifactId>
<name>repositories</name>
<version>1.0.0-SNAPSHOT</version>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>com.encyclopeia-galactica.sourceformats</groupId>
<artifactId>entities</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
</dependencies>
</project>
< code>repositories.tests的pom.xml:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.1</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>com.encyclopeia-galactica.sourceformats</groupId>
<artifactId>repositories.tests</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.encyclopeia-galactica.sourceformats</groupId>
<artifactId>entities</artifactId>
<version>1.0.0-SNAPSHOT</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.encyclopeia-galactica.sourceformats</groupId>
<artifactId>repositories</artifactId>
<version>1.0.0-SNAPSHOT</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.encyclopedia-galactica.sourceformats</groupId>
<artifactId>application</artifactId>
<version>1.0.0-SNAPSHOT</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
测试类(它被放置在 src/测试/java
中,但包名与存储库类相同:
package com.encyclopediagalactica.sourceformats.repositories.sourceformat;
import static org.assertj.core.api.Assertions.assertThat;
import java.util.List;
import com.encyclopediagalactica.sourceformats.entities.SourceFormat;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
import org.springframework.boot.test.autoconfigure.orm.jpa.TestEntityManager;
import org.springframework.test.context.ContextConfiguration;
@DataJpaTest
@ContextConfiguration(
classes = com.encyclopediagalactica.sourceformats.application.SourceFormatServiceApplication.class)
public class FindAllTests {
@Autowired
private TestEntityManager testEntityManager;
@Autowired
private SourceFormatRepository repository;
public FindAllTests() {
}
@Test
public void shouldReturnAll() {
// Arrange
SourceFormat sf1 = new SourceFormat(100L, "asd");
SourceFormat sf2 = new SourceFormat(200L, "asd2");
this.testEntityManager.persist(sf1);
this.testEntityManager.persist(sf2);
// Act
List<SourceFormat> sourceFormats = (List<SourceFormat>) this.repository.findAll();
// Assert
assertThat(sourceFormats.size()).isEqualTo(2);
}
}
知识库:
package com.encyclopediagalactica.sourceformats.repositories.sourceformat;
import org.springframework.data.repository.NoRepositoryBean;
import org.springframework.data.repository.PagingAndSortingRepository;
@NoRepositoryBean
public interface SourceFormatBaseRepository<T, ID> extends PagingAndSortingRepository<T, ID> {
<S extends T> S save(S entity);
Iterable<T> findAll();
}
存储库:
package com.encyclopediagalactica.sourceformats.repositories.sourceformat;
import com.encyclopediagalactica.sourceformats.entities.SourceFormat;
public interface SourceFormatRepository extends SourceFormatBaseRepository<SourceFormat, Long> {
}
错误消息:(很抱歉格式化,blockquote中的某些内容似乎发生了更改,因为它没有使用单空间字体显示内容)
[信息]检测到更改-重新编译模块![信息]将1个源文件编译到/Users/andrascsanyi/Dev/github.com/EncyclopediaGalactica/EG/repositories。tests/target/test classes[INFO][INFO]——maven surefire插件:2.22.2:test(默认测试)@repositories。测试--[INFO][INFO]--------------------------------------------------------------[INFO]T E S T S[INFO]--------------------------------------[INFO]正在运行com.encyclopediagalactica.sourceformats.repositories.sourceformat。FindAllTests 09:05:31.009〔main〕调试。___124;|._| |124; ||,|///=|===|/124;===2.7.1版:Spring引导:
2022-07-24 09:05:31.864 INFO 43466-[main]c . e . s . r . source format . FindAllTests:使用Java 18.0.2在andras-MacBook-pro . local上使用PID 43466启动FindAllTests(由andrascscanyi在/Users/andrascscanyi/Dev/github . com/EncyclopediaGalactica/EG/repositories . tests中启动)2022-07-24 09:052022-07-24 09:05:32.400 INFO 43466-[main]. s . d . r . c . repositoryconfigurationdelegate:在5毫秒内完成Spring数据仓库扫描。找到0个JPA仓库接口。2022-07-24 09:05:32.481 INFO 43466-[< br > main]beddedDataSourceBeanFactoryPostProcessor:用嵌入式版本替换“dataSource”数据源bean 2022-07-24 09:05:32.757 INFO 43466-[main]o . s . j . d . e . embeddeddatabasefactory:正在启动嵌入式数据库:URL = ' JDBC:H2:mem:a66d 2659-af0d-af0dDB _ CLOSE _ DELAY =-1;DB_CLOSE_ON_EXIT=false ',username = ' sa ' 2022-07-24 09:05:33.331 INFO 43466-[< br > main]o . Hibernate . JPA . internal . util . log helper:hhh 000204:Processing persistencunitinfo[name:default]2022-07-24 09:05:33.414 INFO 43466-[main]org . Hibernate . version:hhh 000044 j . localcontainereentitymanagerfactorybean:已初始化持久性单元的JPA EntityManagerFactory ' default ' 2022-07-24 09:05:34.408 INFO 43466-[main]c . e . s . r . source format . find all tests:在2.997秒内启动find all tests(JVM运行4.157)
2022-07-24 09:05:34.432错误43466-[main]o.s.test.context。TestContextManager:在允许TestExecutionListener时捕获异常[org.springframework.boot.test.autoconfigure.SpringBootDependencyInjectionTestExecutionListener@c430e6c]准备测试实例[com.encyclopediagalactica.sourceformats.repositories.sourceformat.FindAllTests@6f43c82]
[错误]测试运行:1,失败:0,错误:1,跳过:0,所用时间:3.564秒
我犯了很多错误:
com.encyclopediagalactica.sourceformats。应用程序:
这不是推荐的--现在,应用程序启动并为请求提供服务。测试也在运行,它们是绿色的。
我在我的项目中使用了Java、Wildfly18、Primefaces和JSF,但是我得到了这个警告!有人知道为什么我只在Firefox中使用这个项目时会收到这个警告吗? 任何信息都会有帮助。以下是服务器日志: 17:13:41,238警告[javax.enterprise.resource.webcontainer.jsf.application](默认任务-291)JSF1064:Ressou
我正在使用spring boot,我决定只是为了把我的项目分成模块。我有4个模块,网络,服务,存储库,领域。除了JSP外,其他工作都很好,spring找不到这些页面。但当我没有把我的项目分成模块时,它就起作用了。我没有改变配置。 这是我的web模块结构 Runner位于web模块中,如下所示: 此外,Intellij想法还告诉我,index.jsp没有视图解析器,尽管我显式地添加了视图解析器bea
我似乎无法让Maven在多模块项目中找到兄弟姐妹的模块。 我已经在所有模块中运行了。 下面是MagnicCompCommon 下面是Model
问题内容: 我有一个python项目(我在virtualenv中运行),其结构如下: script.py 我使用以下命令从venv激活运行项目,并从Project目录中运行该项目: 该脚本会运行,但是在退出之前会发出以下错误: 我试过运行python shell并尝试从那里导入模块,但没有出错。我在src的每个目录中都有_ _init__.py。python是否将工作目录视为src / scrip
我用RESTAPI创建了一个非常基本的Spring Boot项目。我尝试将它连接到我的Angular应用程序,但它出现了一些CORS安全错误,所以我切换到了Postman。我试图用邮递员测试它,但我一直收到一个404未找到邮递员错误。为什么我不能连接到我的后端并发布到测试仪功能? 控制器 主要的 安慰 等效的 cURL 命令 邮递员