web-dev-qa-db-ja.com

インポートorg.springframework.test.context.junit4.SpringJUnit4ClassRunnerを解決できません

私はSpringの初心者であり、これはStackOverflowに関する私の最初の質問でもあるので、これを可能な限り理解できるようにするつもりです。

this チュートリアルでSpringとMavenを使用してWebサービスクライアントを作成しようとしています:このエラーが発生します:import org.springframework.test.context.junit4を解決できません

ここに私のコードがあります:

package demo;

import hello.WsClientApplication;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.SpringApplicationConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; //this won't import


@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = WsClientApplication.class)
public class WsClientApplicationTests {

    @Test
    public void contextLoads() {
    }

}

これが私の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">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.springframework</groupId>
    <artifactId>gs-consuming-web-service</artifactId>
    <version>0.1.0</version>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.2.3.RELEASE</version>
    </parent>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
           <dependency>
               <groupId>org.springframework.ws</groupId>
               <artifactId>spring-ws-core</artifactId>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <!-- tag::wsdl[] -->
            <plugin>
                <groupId>org.jvnet.jaxb2.maven2</groupId>
                <artifactId>maven-jaxb2-plugin</artifactId>
                <version>0.12.3</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>generate</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <schemaLanguage>WSDL</schemaLanguage>
                    <generatePackage>hello.wsdl</generatePackage>
                    <schemas>
                        <schema>
                            <url>http://wsf.cdyne.com/WeatherWS/Weather.asmx?wsdl</url>
                        </schema>
                    </schemas>
                </configuration>
            </plugin>
            <!-- end::wsdl[] -->
        </plugins>
    </build>

</project>

StackOverflowで他のいくつかのソリューションを試しましたが、機能しません。

ありがとう。

14
Juan Carlos

spring-boot-starter-testへの依存関係を追加する必要があります。

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-test</artifactId>
  <scope>test</scope>
</dependency>
22
Wim Deblauwe

現在、最新のスプリングブート1.5.2リリースを使用している場合、@ SpringApplicationConfigurationは使用できなくなり、代わりに@SpringBootTestを使用する必要があります。ここでの参照(@ Spring BootのSpring Boot Starterテスト

12
SekharKari

グラドル

Gradleでは、これは追加することによって行われます

testCompile("org.springframework.boot:spring-boot-starter-test")

次のように依存関係ブロックに:

dependencies {
    compile("org.springframework.boot:spring-boot-starter-web")
    testCompile("junit:junit")
    testCompile("org.springframework.boot:spring-boot-starter-test")
}

その後、クラスの先頭にimportステートメントを書くことができるはずです

import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

注釈を使用できるようにします。

@RunWith(SpringJUnit4ClassRunner.class)
public class MyAppTest {

}
9
Baker

私はこれが少し遅れて回答されていることを知っていますが、私は同じ問題を抱えていて、2つの方法で修正することができました。

  1. <scope> test </ scope>タグを削除でき、制限が削除されました
  2. 私はテストを行うときにintellijが適切に処理しないという問題があったので、テストルートとしてマークされていることを確認し、緑からグレーに変更しました->グレー->緑のテストルートに戻して、問題を解決しました。
1
Micheal

時々、Mavenは依存関係のダウンロードを開始し、終了しません。 .m2フォルダーに移動して、次を入力します。

find . -name *progre*

このコマンドは、タグ「in-progess」を持つすべてのファイルを表示します。これらのファイルは、欠落しているファイルまたは終了していないファイルです。

フォルダーを削除して、依存関係を再度更新してください。

0
Pompeu