Ошибка теста Ember из-за того, что `testem.js не загружен?`

Я получаю указанное ниже сообщение об ошибке для проекта ember при локальном запуске тестов с помощью ember test. большую часть времени PhantomJS зависал.

$ ember test

not ok 1 Chrome - error
---
    message: >
        Error: Browser failed to connect within 30s. testem.js not loaded?
        Stderr: 
         2018-07-13 11:24:43.115 Google Chrome[47537:547312] Errors logged by ksadmin: KSKeyedPersistentStore store directory does not exist. [com.google.UpdateEngine.CommonErrorDomain:501 - '/Library/Google/GoogleSoftwareUpdate/TicketStore' - 'KSKeyedPersistentStore.m:368']
        KSPersistentTicketStore failed to load tickets. (productID: com.google.Chrome) [com.google.UpdateEngine.CoreErrorDomain:1051 - '/Library/Google/GoogleSoftwareUpdate/TicketStore/Keystone.ticketstore'] (KSKeyedPersistentStore store directory does not exist. - '/Library/Google/GoogleSoftwareUpdate/TicketStore' [com.google.UpdateEngine.CommonErrorDomain:501])
        ksadmin cannot access the ticket store:<KSUpdateError:0x100404060
            domain="com.google.UpdateEngine.CoreErrorDomain"
            code=1051
            userInfo={
                function = "-[KSProductKeyedStore(ProtectedMethods) errorForStoreError:productID:message:timeoutMessage:]";
                date = 2018-07-13 03:24:43 +0000;
                productids = {(
                    "com.google.Chrome"
                )};
                filename = "KSProductKeyedStore.m";
                line = 102;
                NSFilePath = "/Library/Google/GoogleSoftwareUpdate/TicketStore/Keystone.ticketstore";
                NSUnderlyingError = <KSError:0x100515350
                    domain="com.google.UpdateEngine.CommonErrorDomain"
                    code=501
                    userInfo={
                        date = 2018-07-13 03:24:43 +0000;
                        line = 368;
                        filename = "KSKeyedPersistentStore.m";
                        function = "-[KSKeyedPersistentStore(PrivateMethods) validateStorePath]";
                        NSFilePath = "/Library/Google/GoogleSoftwareUpdate/TicketStore";
                        NSLocalizedDescription = "KSKeyedPersistentStore store directory does not exist.";
                    }
                >;
                NSLocalizedDescription = "KSPersistentTicketStore failed to load tickets.";
            }
        >
        [47537:28675:0713/112447.920274:ERROR:ssl_client_socket_impl.cc(1026)] handshake failed; returned -1, SSL error code 1, net_error -107
        [47537:28675:0713/112448.006779:ERROR:ssl_client_socket_impl.cc(1026)] handshake failed; returned -1, SSL error code 1, net_error -107
        2018-07-13 11:24:52.494 Google Chrome Helper[47600:548065] Couldn't set selectedTextBackgroundColor from default ()


    Log: |
        { type: 'error',
          text: 'Error: Browser failed to connect within 30s. testem.js not loaded?' }
        { type: 'error',
          text: '2018-07-13 11:24:43.115 Google Chrome[47537:547312] Errors logged by ksadmin: KSKeyedPersistentStore store directory does not exist. [com.google.UpdateEngine.CommonErrorDomain:501 - \'/Library/Google/GoogleSoftwareUpdate/TicketStore\' - \'KSKeyedPersistentStore.m:368\']\nKSPersistentTicketStore failed to load tickets. (productID: com.google.Chrome) [com.google.UpdateEngine.CoreErrorDomain:1051 - \'/Library/Google/GoogleSoftwareUpdate/TicketStore/Keystone.ticketstore\'] (KSKeyedPersistentStore store directory does not exist. - \'/Library/Google/GoogleSoftwareUpdate/TicketStore\' [com.google.UpdateEngine.CommonErrorDomain:501])\nksadmin cannot access the ticket store:<KSUpdateError:0x100404060\n\tdomain="com.google.UpdateEngine.CoreErrorDomain"\n\tcode=1051\n\tuserInfo={\n\t\tfunction = "-[KSProductKeyedStore(ProtectedMethods) errorForStoreError:productID:message:timeoutMessage:]";\n\t\tdate = 2018-07-13 03:24:43 +0000;\n\t\tproductids = {(\n\t\t\t"com.google.Chrome"\n\t\t)};\n\t\tfilename = "KSProductKeyedStore.m";\n\t\tline = 102;\n\t\tNSFilePath = "/Library/Google/GoogleSoftwareUpdate/TicketStore/Keystone.ticketstore";\n\t\tNSUnderlyingError = <KSError:0x100515350\n\t\t\tdomain="com.google.UpdateEngine.CommonErrorDomain"\n\t\t\tcode=501\n\t\t\tuserInfo={\n\t\t\t\tdate = 2018-07-13 03:24:43 +0000;\n\t\t\t\tline = 368;\n\t\t\t\tfilename = "KSKeyedPersistentStore.m";\n\t\t\t\tfunction = "-[KSKeyedPersistentStore(PrivateMethods) validateStorePath]";\n\t\t\t\tNSFilePath = "/Library/Google/GoogleSoftwareUpdate/TicketStore";\n\t\t\t\tNSLocalizedDescription = "KSKeyedPersistentStore store directory does not exist.";\n\t\t\t}\n\t\t>;\n\t\tNSLocalizedDescription = "KSPersistentTicketStore failed to load tickets.";\n\t}\n>\n[47537:28675:0713/112447.920274:ERROR:ssl_client_socket_impl.cc(1026)] handshake failed; returned -1, SSL error code 1, net_error -107\n[47537:28675:0713/112448.006779:ERROR:ssl_client_socket_impl.cc(1026)] handshake failed; returned -1, SSL error code 1, net_error -107\n2018-07-13 11:24:52.494 Google Chrome Helper[47600:548065] Couldn\'t set selectedTextBackgroundColor from default ()\n' }



1..1
# tests 1
# pass  0
# skip  0
# fail  1
Testem finished with non-zero exit code. Tests failed.

testem.js: /*jshint node:true*/ module.exports = { "framework": "qunit", "test_page": "tests/index.html?hidepassed", "disable_watching": true, "launch_in_ci": [ "Chrome" ], "launch_in_dev": [ "PhantomJS", "Chrome" ] };

установленные версии: MacOS Sierra 10.12.6 node: 6.12.2 npm: 5.6.0 ember: 2.12.0 ember-cli: 2.18.2 phantomjs: 2.1.1

Ниже приведена часть моего файла test/index.html:

<script src="testem.js" integrity=""></script>
<script src="assets/vendor.js"></script>
<script src="assets/test-support.js"></script>
<script src="assets/myApp.js"></script>
<script src="assets/tests.js"></script>

также пробовал с ember test --server, но та же ошибка. Итак, кто-нибудь знает, как это сузить и почему testem не загружается?


person Shiv Kumar Baghel    schedule 13.07.2018    source источник


Ответы (3)


Для тестов обычно нужно запустить хром в безголовом режиме с включенной удаленной отладкой. Добавление этих строк в ваш testem.json должно помочь:

"browser_args": {
  "Chrome": [
    '--headless',
    '--disable-gpu',
    '--remote-debugging-port=9222',
    '--window-size=1440,900',
  ]
}

Я также предлагаю удалить строку "PhantomJS" - фантом может не работать с последними версиями Ember из-за этой проблемы .

person Gennady Dogaev    schedule 13.07.2018
comment
У меня тоже есть этот файл, но позже он работает отлично, сейчас он не работает, показывая ту же ошибку. Он отлично работает локально, но не в jenkin cli - person Araf; 03.12.2020

Изменен testem.js с указанными ниже настройками. и работает нормально :)

/* eslint-env node */
module.exports = {
  test_page: 'tests/index.html?hidepassed',
  disable_watching: true,
  launch_in_ci: [
    'Chrome'
  ],
  launch_in_dev: [
    'Chrome'
  ],
  browser_args: {
    Chrome: {
      mode: 'ci',
      args: [
        '--disable-gpu',
        '--headless',
        '--remote-debugging-port=0',
        '--window-size=1440,900'
      ]
    }
  }
};
person Shiv Kumar Baghel    schedule 16.07.2018

Если вы уже проверили очевидные настройки браузера, но они все еще не работают: проверьте, не устанавливаете ли вы EMBER_ENV=test.

person thisismydesign    schedule 06.08.2021