示例firefox附加"cfx测试"失败,为什么?

Hel*_*rld 5 firefox firefox-addon firefox-addon-sdk

我使用了https://developer.mozilla.org/en-US/Add-ons/SDK/Tutorials/Installation中的说明

启动添加并运行测试.为什么,即使在这个例子中我有一个错误,因为我可以继续发展?

    C:\addon-sdk-1.17\bin>activate 
    Welcome to the Add-on SDK. For the docs, visit https://addons.mozilla.org/en-US/ developers/docs/sdk/latest/

    (C:\addon-sdk-1.17) C:\addon-sdk-1.17\bin>cd ../examples

    (C:\addon-sdk-1.17) C:\addon-sdk-1.17\examples>mkdir fe

    (C:\addon-sdk-1.17) C:\addon-sdk-1.17\examples>cd fe

    (C:\addon-sdk-1.17) C:\addon-sdk-1.17\examples\fe>cfx init
    * lib directory created
    * data directory created
    * test directory created
    * generated jID automatically: jid1-pNW6cN0dpaDyiQ
    * package.json written
    * test/test-main.js written
    * lib/main.js written

    Your sample add-on is now ready. Do "cfx test" to test it and "cfx run" to try it.  Have fun!

    (C:\addon-sdk-1.17) C:\addon-sdk-1.17\examples\fe>cfx test 
    Using binary at 'C:\Program Files (x86)\Mozilla Firefox\firefox.exe'. 
    Using profile at 'c:\users\artur\appdata\local\temp\tmpxescsx.mozrunner'. 
    Running tests on Firefox 34.0.5/Gecko 34.0.5 ({ec8030f7-c20a-464f-9b0e-13a3a9e97 384}) under winnt/x86. .console.error: fe:   fail:   There was an uncaught Promise rejection: JS frame :: resource://gre/modules/Pr omise.jsm -> resource://gre/modules/Promise-backend.js :: PendingErrors.register  :: line 159 JS frame :: resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise
    -backend.js :: this.PromiseWalker.completePromise :: line 672 JS frame :: resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise
    -backend.js :: Handler.prototype.process :: line 868 JS frame :: resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise
    -backend.js :: this.PromiseWalker.walkerLoop :: line 744 native frame :: <unknown filename> :: <TOP_LEVEL> :: line 0 console.trace: fe:
    _ecated/unit-test.js 96 fail
    _ecated/unit-test.js 61 TestRunner.prototype._uncaughtErrorObserver
    _/Promise-backend.js 197 PendingErrors.report
    _/Promise-backend.js 209 PendingErrors.flush
    _/Promise-backend.js 611 Promise.Debugging.flushUncaughtErrors
    _ecated/unit-test.js 306 done
    _ecated/unit-test.js 529 start
    _ecated/unit-test.js 491 runNextTest
    _ecated/unit-test.js 496 startMany
    _ecated/unit-test.js 26 findAndRunTests/<
    _/Promise-backend.js 865 Handler.prototype.process
    _/Promise-backend.js 744 this.PromiseWalker.walkerLoop
                         0

    . 2 of 3 tests passed. Total time: 2.550000 seconds Program terminated unsuccessfully.

    (C:\addon-sdk-1.17) C:\addon-sdk-1.17\examples\fe>
Run Code Online (Sandbox Code Playgroud)

Fra*_*ulz 1

我刚刚在 Ubuntu 上遇到了同样的问题。

根据这个bugzilla 条目,不会再有任何新版本cfx。相反,基于节点的jpm(“jetpack mechanic”)才是合适的工具。当前的一个小问题,在 Ubuntu 上,firefox 二进制文件必须明确指定,例如

jpm -b /usr/bin/firefox test
Run Code Online (Sandbox Code Playgroud)