#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.
Таким образом, это работает.