Как устранить эту ошибку в модульном тесте Karma, запущенном на Jenkins: «Не удается найти переменную: jQuery» - PullRequest
0 голосов
/ 25 мая 2020

Я добавил библиотеку ui-sortable в проект AngularJS, чтобы реализовать функцию перетаскивания в неупорядоченном списке. В проекте используется bower для управления библиотеками пользовательского интерфейса и bower. json включает в себя как jquery, так и jquery -ui

{
  "name": "fountain-inject",
  "version": "0.0.1",
  "dependencies": {
    "jquery": "3.5.1",
    "jquery-ui": "1.12.1",
    "angular": "1.7.9"
  }
}

Когда он построен локально на Windows, все модульные тесты проходят , но при сборке Jenkins на Linux все модульные тесты проходят, но затем выдается сообщение об этой ошибке, и сборка завершается неудачно

[INFO] PhantomJS 2.1.1 (Linux 0.0.0) ERROR
[INFO]   An error was thrown in afterAll
[INFO]   ReferenceError: Can't find variable: jQuery
[INFO]   bower_components/jquery-ui/jquery-ui.js:14
[INFO] PhantomJS 2.1.1 (Linux 0.0.0): Executed 741 of 742 (skipped 1) ERROR (13.945 secs / 13.232 secs)

Сама сборка является модулем внешнего интерфейса многомодульного проекта maven. . Он использует плагин maven внешнего интерфейса для установки узла, извлечения зависимостей bower и node, затем запускает файл сборки gulp, включая модульные тесты

<plugin>
    <groupId>com.github.eirslett</groupId>
    <artifactId>frontend-maven-plugin</artifactId>
    <version>1.3</version>
    <executions>
        <execution>
            <id>install node and npm</id>
            <goals>
                <goal>install-node-and-npm</goal>
            </goals>
            <phase>generate-resources</phase>
            <configuration>
                <nodeVersion>v12.13.1</nodeVersion>
            </configuration>
        </execution>

        <execution>
            <id>npm install</id>
            <goals>
                <goal>npm</goal>
            </goals>
            <phase>generate-resources</phase>
            <configuration>
                <arguments>install</arguments>
            </configuration>
        </execution>

        <execution>
            <id>bower install</id>
            <goals>
                <goal>bower</goal>
            </goals>
            <configuration>
                <arguments>install</arguments>
            </configuration>
        </execution>

        <execution>
            <id>gulp build</id>
            <goals>
                <goal>gulp</goal>
            </goals>
            <phase>test-compile</phase>
            <configuration>
                <arguments>build</arguments>
            </configuration>
        </execution>

        <execution>
            <id>gulp test</id>
            <phase>test</phase>
            <goals>
                <goal>gulp</goal>
            </goals>
            <configuration>
                <arguments>test --no-notification</arguments>
            </configuration>
        </execution>
    </executions>
</plugin>

Кто-нибудь знает, как решить эту проблему ?

1 Ответ

0 голосов
/ 26 мая 2020

ошибка была решена, когда я добавил каталог bower_components / jQuery в репозиторий, и сборка завершилась. По какой-то причине машина сборки имеет проблемы с получением зависимостей bower из inte rnet, но не имеет проблем с зависимостями узлов, необходимых для самой сборки.

...