Будьте уверены, что входы TestNG не работают с проектом Maven.

Я добавил следующий список зависимостей в pom.xml для моего проекта с уверенностью с maven:

<dependency>
    <groupId>com.jayway.restassured</groupId>
    <artifactId>rest-assured</artifactId>
    <version>2.1.0</version>
    <scope>test</scope>
</dependency>

Теперь я пытаюсь запустить следующий пример кода:

import static com.jayway.restassured.RestAssured.*;
import static com.jayway.restassured.matcher.RestAssuredMatchers.*;
import static org.hamcrest.Matchers.*;
import java.util.*;
import org.testng.Assert;
import org.testng.annotations.*;

public class TestNGTest1 {

    private Collection collection;

    @Test
    public void testGetSingleUserProgrammatic() {
        Response res = get("/service/single-user");            
        assertEquals(200, res.getStatusCode());
        String json = res.asString();
        JsonPath jp = new JsonPath(json);
        assertEquals("[email protected]", jp.get("email"));
        assertEquals("Tim", jp.get("firstName"));
        assertEquals("Testerman", jp.get("lastName"));
        assertEquals("1", jp.get("id"));
    }
}

Но это выдает ошибку при выполнении mvn test

Ошибка:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:testCompile (default-testCompile) on project GBAppAuomation: Compilation failure: Compilation failure:
[ERROR] /home/jay/temp/GB_MVN_Proj/GBAppAuomation/src/test/java/com/glassbeam/app/TestNGTest1.java:[50,2] error: cannot find symbol
[ERROR] class TestNGTest1
[ERROR] /home/jay/temp/GB_MVN_Proj/GBAppAuomation/src/test/java/com/glassbeam/app/TestNGTest1.java:[53,2] error: cannot find symbol

Соответствующие символы: get и т. д., которые, как мы уверены, используются.

Как было задано здесь, это полное сообщение об ошибке ::

Here is the complete error message::   **

[INFO] --- maven-compiler-plugin:2.3.2:testCompile (default-testCompile) @ GBAppAuomation ---
[INFO] Compiling 1 source file to /home/jay/temp/GB_MVN_Proj/GBAppAuomation/target/test-classes
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR : 
[INFO] -------------------------------------------------------------
[ERROR] /home/jay/temp/GB_MVN_Proj/GBAppAuomation/src/test/java/com/glassbeam/app/TestNGTest1.java:[50,1] error: cannot find symbol
[ERROR]  class TestNGTest1
/home/jay/temp/GB_MVN_Proj/GBAppAuomation/src/test/java/com/glassbeam/app/TestNGTest1.java:[50,17] error: cannot find symbol
[ERROR]  class TestNGTest1
/home/jay/temp/GB_MVN_Proj/GBAppAuomation/src/test/java/com/glassbeam/app/TestNGTest1.java:[53,2] error: cannot find symbol
[ERROR]  class TestNGTest1
/home/jay/temp/GB_MVN_Proj/GBAppAuomation/src/test/java/com/glassbeam/app/TestNGTest1.java:[53,20] error: cannot find symbol
[INFO] 4 errors 
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.384s
[INFO] Finished at: Sat Jan 04 15:26:57 IST 2014
[INFO] Final Memory: 16M/202M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:testCompile (default-testCompile) on project GBAppAuomation: Compilation failure: Compilation failure:
[ERROR] /home/jay/temp/GB_MVN_Proj/GBAppAuomation/src/test/java/com/glassbeam/app/TestNGTest1.java:[50,1] error: cannot find symbol
[ERROR] class TestNGTest1
[ERROR] /home/jay/temp/GB_MVN_Proj/GBAppAuomation/src/test/java/com/glassbeam/app/TestNGTest1.java:[50,17] error: cannot find symbol
[ERROR] class TestNGTest1
[ERROR] /home/jay/temp/GB_MVN_Proj/GBAppAuomation/src/test/java/com/glassbeam/app/TestNGTest1.java:[53,2] error: cannot find symbol
[ERROR] class TestNGTest1
[ERROR] /home/jay/temp/GB_MVN_Proj/GBAppAuomation/src/test/java/com/glassbeam/app/TestNGTest1.java:[53,20] error: cannot find symbol

person undefined    schedule 03.01.2014    source источник
comment
Можете ли вы показать полное сообщение об ошибке?   -  person khmarbaise    schedule 04.01.2014
comment
Вот полное сообщение об ошибке:: Отредактировал вопрос с полным сообщением. @khmarbaise   -  person undefined    schedule 04.01.2014


Ответы (2)


Проблема, похоже, связана с зависимостями.

Были ли ошибки компиляции в IDE?

Потому что интерфейс Response из строки ниже (вероятно, строка 50 из-за ошибки)

Response res = get("/service/single-user");

принадлежит пакету com.jayway.restassured.response, тогда как единственные import в классе, связанные с restassured,

import static com.jayway.restassured.RestAssured.*;
import static com.jayway.restassured.matcher.RestAssuredMatchers.*; 

И класс JsonPath из (вероятно, строка 53 из-за ошибки)

JsonPath jp = new JsonPath(json);

принадлежит пакету com.jayway.jsonpath и также не импортируется. Этот пакет также должен быть включен в POM как зависимость:

<dependency>
    <groupId>com.jayway.jsonpath</groupId>
    <artifactId>json-path</artifactId>
    <version>0.9.1</version>
</dependency>
person Vlad.Bachurin    schedule 05.01.2014
comment
Спасибо, проблема исправлена... импортированные пакеты: import static com.jayway.restassured.RestAssured.expect; импортировать статический com.jayway.restassured.RestAssured.get; импортировать статический com.jayway.restassured.RestAssured.given; + добавлены ваши. Теперь все работает нормально. Единственное место, где я застрял, это stackoverflow.com/questions/20931722/ . - person undefined; 05.01.2014

Пожалуйста, обратите внимание на groupId. В наличии их два. Тот, который вам нужен для восстановленных банок: io.rest-assured.

На данный момент это последняя версия:

<dependency>
<groupId>io.rest-assured</groupId>
<artifactId>rest-assured</artifactId>
<version>3.0.3</version>
<scope>test</scope>
</dependency>

Если станет доступна более новая версия, все, что вам нужно сделать, это изменить номер версии в зависимости с 3.0.3 на новый.

К вашему сведению, больше нет необходимости добавлять автономную зависимость JsonPath, поскольку теперь она полностью встроена в защищенный артефакт, как указано выше.

person Community    schedule 30.09.2017