[에러문구입니다.] org.junit.runners.model.InvalidTestClassError: Invalid test class 'jpabook.jpashop.MemberRepositoryTest': 1. No runnable methods at org.junit.runners.ParentRunner.validate( ParentRunner.java:525 ) at org.junit.runners.ParentRunner.<init>( ParentRunner.java:92 ) at org.junit.runners.BlockJUnit4ClassRunner.<init>( BlockJUnit4ClassRunner.java:74 ) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.<init>( SpringJUnit4ClassRunner.java:137 ) at org.springframework.test.context.junit4.SpringRunner.<init>( SpringRunner.java:49 ) at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance( NativeConstructorAccessorImpl.java:62 ) at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance( DelegatingConstructorAccessorImpl.java:45 ) at java.base/java.lang.reflect.Constructor.newInstance( Constructor.java:490 ) at org.junit.internal.builders .AnnotatedBuilder.buildRunner( AnnotatedBuilder.java:104 ) at org.junit.vintage.engine.discovery.DefensiveAllDefaultPossibilitiesBuilder$DefensiveAnnotatedBuilder.buildRunner( DefensiveAllDefaultPossibilitiesBuilder.java:114 ) at org.junit.internal.builders .AnnotatedBuilder.runnerForClass( AnnotatedBuilder.java:86 ) at org.junit.runners.model.RunnerBuilder.safeRunnerForClass( RunnerBuilder.java:70 ) at org.junit.internal.builders .AllDefaultPossibilitiesBuilder.runnerForClass( AllDefaultPossibilitiesBuilder.java:37 ) at org.junit.vintage.engine.discovery.DefensiveAllDefaultPossibilitiesBuilder.runnerForClass( DefensiveAllDefaultPossibilitiesBuilder.java:57 ) at org.junit.runners.model.RunnerBuilder.safeRunnerForClass( RunnerBuilder.java:70 ) at org.junit.vintage.engine.discovery.ClassSelectorResolver.resolveTestClass( ClassSelectorResolver.java:66 ) at org.junit.vintage.engine.discovery.ClassSelectorResolver.resolve( ClassSelectorResolver.java:47 ) at org.junit.platform.engine.support .discovery.EngineDiscoveryRequestResolution.lambda$resolve$2( EngineDiscoveryRequestResolution.java:134 ) at java.base/java.util.stream.ReferencePipeline$3$1.accept( ReferencePipeline.java:195 ) at java.base/java.util.ArrayList$ArrayListSpliterator.tryAdvance( ArrayList.java:1632 ) at java.base/java.util.stream.ReferencePipeline.forEachWithCancel( ReferencePipeline.java:127 ) at java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel( AbstractPipeline.java:502 ) at java.base/java.util.stream.AbstractPipeline.copyInto( AbstractPipeline.java:488 ) at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto( AbstractPipeline.java:474 ) at java.base/java.util.stream.FindOps$FindOp.evaluateSequential( FindOps.java:150 ) at java.base/java.util.stream.AbstractPipeline.evaluate( AbstractPipeline.java:234 ) at java.base/java.util.stream.ReferencePipeline.findFirst( ReferencePipeline.java:543 ) at org.junit.platform.engine.support .discovery.EngineDiscoveryRequestResolution.resolve( EngineDiscoveryRequestResolution.java:185 ) at org.junit.platform.engine.support .discovery.EngineDiscoveryRequestResolution.resolve( EngineDiscoveryRequestResolution.java:125 ) at org.junit.platform.engine.support .discovery.EngineDiscoveryRequestResolution.resolveCompletely( EngineDiscoveryRequestResolution.java:91 ) at org.junit.platform.engine.support.discovery.EngineDiscoveryRequestResolution.run ( EngineDiscoveryRequestResolution.java:82 ) at org.junit.platform.engine.support .discovery.EngineDiscoveryRequestResolver.resolve( EngineDiscoveryRequestResolver.java:113 ) at org.junit.vintage.engine.discovery.VintageDiscoverer.discover ( VintageDiscoverer.java:44 ) at org.junit.vintage.engine.VintageTestEngine.discover ( VintageTestEngine.java:63 ) at org.junit.platform.launcher.core.EngineDiscoveryOrchestrator.discoverEngineRoot( EngineDiscoveryOrchestrator.java:103 ) at org.junit.platform.launcher.core.EngineDiscoveryOrchestrator.discover ( EngineDiscoveryOrchestrator.java:85 ) at org.junit.platform.launcher.core.DefaultLauncher.discover ( DefaultLauncher.java:92 ) at org.junit.platform.launcher.core.DefaultLauncher.execute( DefaultLauncher.java:75 ) at com.intellij.junit5.JUnit5IdeaTestRunner.startRunnerWithArgs( JUnit5IdeaTestRunner.java:71 ) at com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute( IdeaTestRunner.java:38 ) at com.intellij.rt.execution.junit.TestsRepeater.repeat( TestsRepeater.java:11 ) at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs( IdeaTestRunner.java:35 ) at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart( JUnitStarter.java:235 ) at com.intellij.rt.junit.JUnitStarter.main( JUnitStarter.java:54 ) package jpabook.jpashop; import org.assertj.core.api.Assertions; import org.junit.jupiter.api.Test; => 올려주신 소스는 //org.junit.test 인데 그것 때문일까요? import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.annotation.Rollback; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.transaction.annotation.Transactional; import static org.junit.Assert.*; @RunWith(SpringRunner.class) @SpringBootTest public class MemberRepositoryTest { @Autowired MemberRepository memberRepository; @Test @Transactional @Rollback(false) public void testMember() throws Exception{ //given Member member = new Member(); member.setUsername("memberA"); //when Long savedId = memberRepository.save(member); Member findMember = memberRepository.find(savedId); //then Assertions.assertThat(findMember.getId()).isEqualTo(member.getId()); Assertions.assertThat(findMember.getUsername()).isEqualTo(member.getUsername()); } }
안녕하세요 수업중에 글로벌 validator를 등록하는 소스를 보여주셨는데요. 궁금한 게 있어 질문 드립니다. @SpringBootApplication public class ItemServiceApplication implements WebMvcConfigurer { public static void main(String[] args) { SpringApplication.run(ItemServiceApplication.class, args); } @Override public Validator getValidator() { return new ItemValidator(); } } 글로벌 적용 시 사용하는 WebMvcConfigurer를 들어가봐도 반환 타입이 Validator[]는 없고 Validator만 존재하는데, 여러 개의 validator를 등록이 가능할까요? 아래는 컨트롤러에 적용하는 소스인데 여기는 함수를 까보니 여러 개의 인자를 받을 수 있도록 되어 있더라구요. @InitBinder public void init(WebDataBinder dataBinder) { //dataBinder.addValidators(itemValidator); dataBinder.addValidators(itemValidator, memberValidator, storeValidator); } 글로벌 적용은 복수개의 validator를 어떻게 적용할 수 있을까요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. Caused by: org.springframework.beans.NotReadablePropertyException: Invalid property 'item' of bean class [hello.itemservice.domain.item.Item]: Bean property 'item' is not readable or has an invalid getter method: Does the return type of the getter match the parameter type of the setter? 에러가 발생합니다. Item.java 파일에 private Boolean open; 라고 쳤는데도 오류가 발생하는데 어디서 문제가 생긴걸까요? @Data도 넣었습니다.
참조에 의한 값을 반환받는 함수를 이용해 역시 참조를 이용해 변수를 선언하면 함수가 끝나면서 사라지는 인자를 참조하므로 두번 출력하면 쓰레기값이 나온다고 설명해주셧는데요. Visual Studio 2019에서는 몇번을 출력해도 제대로 나오고 있습니다. 왜그런 건가요?? 아래 코드 46~55줄 입니다. #include <iostream> #include <limits> #include <array> #include <vector> #include <algorithm> using namespace std; //정수를 반환받는 경우 int getValue(int x) { int value = x * 2; return value; } int* getValue2(int x) { int value = x * 3; return &value; } int* allocateMemory(int size) { return new int[size]; } //reference로 반환 int& getValue3(int x) { int value = x * 4; return value; } int main() { int value = getValue(3); int value2 = *getValue2(3); /*dereferencing해서 받는건 문제는 없으나 권장하지 않음 15~17의 value는 getValue2를 벗어나면서 사라지는데, 그 사라지는 변수의 주소값을 dereferencing하는건 위험 빌드해보면 값은 나오나 warning 뜸. 그렇다고 변수에 dereferencing은 더 위험. getValue2를 벗어나면서 사라지는 값의 주소값을 인자로 받는 값을 또 dereferencing 하는거니까 이 방법은 잘 안쓰긴 함. 단, 아래와 같이 배열의 동적할당에는 자주 씀. factory pattern이라고 나중에 배움.*/ int* array = allocateMemory(1024); //int *array = new int[1024];와 동일 //대신, 동적 할당이므로 delete해줘야하는데 delete가 allocateMemory 함수 말고 main 함수에 있어야해서 단점임. delete[] array; int value3 = getValue3(5);//getValue3이 반환하는 레퍼런스가 가리키는 실제 값이 value3로 복사해 들어옴. int& value4 = getValue3(5); //이거는 문제. value4는 getValue3가 끝나면 사라지는 26번째 줄의 value를 참조함 //없어지는 변수의 값을 복사해서 가져오는 value3는 괜찮은데, 없어지는 변수를 직접 참조하는 value4는 문제겠지 //그 얘로 두번 출력해보면 한번은 제대로 나오는데 다음은 쓰레기값 나옴. 지워진 값의 주소를 참조하니까. cout << value3 << endl; cout << value3 << endl; cout << value4 << endl; cout << value4 << endl; cout << value4 << endl; return 0; }
n 은 방의 갯수 1000개 rooms[i].length 은 한 방의 키의 개수 1000개이고 sum(rooms[i].length) 는 모든 방의 키의 합이 아니라 한 방의 키의 합인거 아닌가요??... 그래서 시간복잡도 O(V +E)에서 V= 10^3, E= 10^6 이 되는 게 아닌지 궁금합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 강의에 나온 코드를 그대로 복사 붙여 넣기하여 작성한 코드임에도 불구하고 계속 localhost:8080/hello 에서 이 오류가 발생합니다. 몇번을 봐도 문제는 없는거 같은데 왜 이럴까요?
안녕하세요 강사님 제 노트북은 windows 11 인데 docker desktop이 처음엔 실행이 잘되었는데 최근부터 docker desktop을 실행시키면 docker desktop starting이 무한 로딩 되다가 결국 fail 됩니다. 첨부한 사진과 같은 에러창이 뜨는데 구글링해서 나온 방법 대부분 적용해봤는데도 실행이 안되고 있어요,, 정 안되겠으면 가상 os를 이용해야 할 것 같은데 혹시 해결책이 있을까요..?? 1주일넘게 안되고 있으니 답답하네요ㅜㅠ
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 강사님은 인스턴스 여러개 만드셔서 각각의 인스턴스에 프로그램을 설치하셔서 하시는데 만약 한개의 인스턴스로 한다면 앞에 강의 처럼 docker 컨테이너로 각각 설치해서 진행하면 될까요? 이 경우에 jenkins 는 해당 인스턴스에 그대로 강의처럼 설치할지 아니면 앞선 강의 처럼 DinD 형식으로 설치할지 어떤식으로 진행하는게 맞을지 좀 더 도움이 될지 궁금합니다 ..
안녕하세요! 이번에 새로 강의를 듣게 된 학생입니다. 강의 정말 잘 듣고 있으며 정리글에 대해 질문을 드리고자합니다. 저는 평소에 무료강의를 들을때 깃허브에 마크다운으로 정리하곤 합니다. 이번 강의도 정리를 하고싶은데 강의노트 포함, 자료실에서 받은 코드 파일은 당연히 올리지 않지만, 출처를 밝히며 제가 따라친 코드와 결과물 정도를 마크다운에 작성해 올려도되는지 여쭙고싶습니다!
코팩님 안녕하세요! 다름이아니라 플러터 앱개발 공부에 대해 질문좀 드리겠습니다! 저는 앱을 빠른시일내에 만드는게 목표인데, 아이디어는 이미 있고, 만들 실력만 빨리 키우면 됩니다. 그래서 플러터앱개발을 배우려고 하는데 알아보니 코팩님 강의도 이렇게 3개가 있지만 책도 내셨더라고요?? 그래서 말인데, 저같이 빨리 실력을 길러서 빨리 앱을 출시하는게 목적인 사람에게는 코팩님 책으로 공부하는게 더 좋을까요 아니면 인프런에 있는 코팩님 강의들을 듣는게 더 좋을까요?? 추천 부탁드립니다!! 또, 이 강의들과 교재에 내용간 차이점이나 다른점도 알려주세요!!
안녕하세요. 강의 통해 항상 도움 받고 있습니다. 다름이 아니라 현재 진행중인 프로젝트에서 모델을 학습하며 Validation 데이터셋에 대한 성능을 확인하는데, Validation 데이터셋의 shuffle을 했을 때와 안했을 때 성능에 유의미한 차이가 발생합니다. 무엇이 이유이며 Validation 및 Test Dataset은 항상 Shuffle=False로 설정해주어야 하는지 궁금합니다.