Тесты Jasmine в проекте Spring Maven: ожидаемое автозаполнение пользовательского интерфейса jQuery не распознается в спецификации

#java #maven #jquery-ui #jasmine

#java #maven #jquery-ui #jasmine

Вопрос:

Недавно я настроил тестирование jasmine в своем проекте и пытаюсь реализовать и протестировать функциональность автозаполнения в своем отчете.

Я использую функцию автозаполнения пользовательского интерфейса jQuery и пытаюсь проверить, был ли выполнен вызов метода в моей спецификации. Но тест завершается неудачей, сообщая, что функция автозаполнения не распознана.

В приспособление я включил файл javascript, поскольку мой вызов функции автозаполнения находится в функции document.ready, а также требуемые файлы jquery, jquery UI js.

Я подумал, что это может быть проблемой с зависимостями maven, поэтому я также включил файл зависимостей в дополнительный файл fixture.

POM.XML (только зависимость и plulgin)

  <dependency>
  <groupId>org.webjars</groupId>
  <artifactId>jasmine-jquery</artifactId>
  <version>2.0.3</version>
  <scope>test</scope>
</dependency>

<pluginManagement>
      <plugins>
        <plugin>
          <groupId>com.github.searls</groupId>
          <artifactId>jasmine-maven-plugin</artifactId>
          <version>2.0</version>
          <executions>
            <execution>
              <goals>
                <goal>test</goal>
              </goals>
            </execution>
          </executions>
          <configuration>
            <preloadSources>
              <source>webjars/jquery.js</source>
              <source>webjars/jasmine-jquery.js</source>
              <source>http://davidstutz.github.io/bootstrap-multiselect/dist/js/bootstrap-multiselect.js</source>
            </preloadSources>
            <jsSrcDir>src/main/webapp/resources/js</jsSrcDir>
            <jsTestSrcDir>src/test/javascript</jsTestSrcDir>
            <webDriverClassName>org.openqa.selenium.phantomjs.PhantomJSDriver</webDriverClassName>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
  

Файл Fixture:

 <title>Fixture File for auto complete</title>
</head>
<body>
  <form action="javascript:void(0)" method="get">
    <input type="text" id="searchAutoComplete" />
  </form>
  

Теги скрипта в fixture, похоже, не отображаются в post. Но я включил как файл js, так и jquery-ui.js файл в устройстве.

Что вы все думаете о том, в чем может заключаться проблема и как ее исправить??

Ответ №1:

Я изменил pom.xml как показано ниже:

  <pluginManagement>
  <plugins>
    <plugin>
      <groupId>com.github.searls</groupId>
      <artifactId>jasmine-maven-plugin</artifactId>
      <version>2.0</version>
      <executions>
        <execution>
          <goals>
            <goal>test</goal>
          </goals>
        </execution>
      </executions>
      <configuration>
        <preloadSources>
          <source>webjars/jquery.js</source>
          <source>webjars/jasmine-jquery.js</source>
          <source>${project.basedir}/src/main/webapp/resources/js/lib/jquery-ui.min.js</source>
          <source>http://davidstutz.github.io/bootstrap-multiselect/dist/js/bootstrap-multiselect.js</source>
        </preloadSources>
        <jsSrcDir>src/main/webapp/resources/js</jsSrcDir>
        <jsTestSrcDir>src/test/javascript</jsTestSrcDir>
        <webDriverClassName>org.openqa.selenium.phantomjs.PhantomJSDriver</webDriverClassName>
      </configuration>
    </plugin>
  </plugins>
</pluginManagement>
  

Я добавил jquery-min.js в библиотеку проекта и включил путь в pom.xml.
Таким образом, это работает.