perljedi / atom-perl-prove

Atom package to run perl prove on current project
MIT License
1 stars 2 forks source link

Uncaught TypeError: Cannot read property 'getPath' of undefined #5

Open atafs opened 8 years ago

atafs commented 8 years ago

[Enter steps to reproduce below:]

  1. ...
  2. ...

Atom Version: 1.11.2 Electron Version: 0.37.8 System: Mac OS X 10.12 Thrown From: atom-perl-prove package, v0.6.0

Stack Trace

Uncaught TypeError: Cannot read property 'getPath' of undefined

At /Users/americo/.atom/packages/atom-perl-prove/lib/atom-perl-prove.coffee:66

TypeError: Cannot read property 'getPath' of undefined
    at Object.module.exports.AtomPerlProve.runTests (/Users/americo/.atom/packages/atom-perl-prove/lib/atom-perl-prove.coffee:66:101)
    at atom-workspace.subscriptions.add.atom.commands.add.atom-perl-prove:run-tests (/Users/americo/.atom/packages/atom-perl-prove/lib/atom-perl-prove.coffee:24:97)
    at CommandRegistry.module.exports.CommandRegistry.handleCommandEvent (/private/var/folders/t3/vksz4rrd43n7j8qb3bhkx5r18gfb7w/T/AppTranslocation/5B2F08EF-705D-42E7-B2B7-3AD9EEF158BE/d/Atom 2.app/Contents/Resources/app.asar/src/command-registry.js:260:29)
    at CommandRegistry.handleCommandEvent (/private/var/folders/t3/vksz4rrd43n7j8qb3bhkx5r18gfb7w/T/AppTranslocation/5B2F08EF-705D-42E7-B2B7-3AD9EEF158BE/d/Atom 2.app/Contents/Resources/app.asar/src/command-registry.js:3:61)
    at CommandRegistry.module.exports.CommandRegistry.dispatch (/private/var/folders/t3/vksz4rrd43n7j8qb3bhkx5r18gfb7w/T/AppTranslocation/5B2F08EF-705D-42E7-B2B7-3AD9EEF158BE/d/Atom 2.app/Contents/Resources/app.asar/src/command-registry.js:160:19)
    at AtomEnvironment.module.exports.AtomEnvironment.dispatchApplicationMenuCommand (/private/var/folders/t3/vksz4rrd43n7j8qb3bhkx5r18gfb7w/T/AppTranslocation/5B2F08EF-705D-42E7-B2B7-3AD9EEF158BE/d/Atom 2.app/Contents/Resources/app.asar/src/atom-environment.js:1127:28)
    at EventEmitter.outerCallback (/private/var/folders/t3/vksz4rrd43n7j8qb3bhkx5r18gfb7w/T/AppTranslocation/5B2F08EF-705D-42E7-B2B7-3AD9EEF158BE/d/Atom 2.app/Contents/Resources/app.asar/src/application-delegate.js:341:25)
    at emitTwo (events.js:100:13)
    at EventEmitter.emit (events.js:185:7)

Commands

     -0:00.3.0 atom-perl-prove:run-tests (ul.list-inline.tab-bar.inset-panel)

Config

{
  "core": {
    "telemetryConsent": "no"
  },
  "atom-perl-prove": {}
}

Installed Packages

# User
advanced-open-file, v0.16.4 (inactive)
atom-beautify, v0.29.9 (inactive)
atom-perl-prove, v0.6.0 (active)
cssbeautify, v1.3.0 (inactive)
file-icons, v1.7.19 (active)
highlight-selected, v0.11.2 (active)
language-scala, v1.1.6 (active)
language-tt, v0.5.1 (active)
minimap-highlight-selected, v4.4.0 (active)
perltidy, v3.0.0 (active)
pretty-json, v1.6.0 (active)
script, v3.10.1 (inactive)
todo-show, v1.7.0 (inactive)
tree-view-git-modified, v0.7.1 (active)
atom-dark-syntax, v0.27.0 (inactive)
atom-dark-ui, v0.52.0 (inactive)
atom-light-syntax, v0.28.0 (inactive)
atom-light-ui, v0.44.0 (inactive)
base16-tomorrow-dark-theme, v1.2.0 (inactive)
base16-tomorrow-light-theme, v1.2.0 (inactive)
one-dark-ui, v1.6.0 (active)
one-light-ui, v1.6.0 (inactive)
one-dark-syntax, v1.3.0 (active)
one-light-syntax, v1.3.0 (inactive)
solarized-dark-syntax, v1.0.2 (inactive)
solarized-light-syntax, v1.0.2 (inactive)
about, v1.7.0 (active)
archive-view, v0.61.1 (active)
autocomplete-atom-api, v0.10.0 (active)
autocomplete-css, v0.11.2 (active)
autocomplete-html, v0.7.2 (active)
autocomplete-plus, v2.31.1 (active)
autocomplete-snippets, v1.11.0 (active)
autoflow, v0.27.0 (inactive)
autosave, v0.23.1 (active)
background-tips, v0.26.1 (active)
bookmarks, v0.42.0 (active)
bracket-matcher, v0.82.1 (active)
command-palette, v0.38.0 (inactive)
deprecation-cop, v0.54.1 (active)
dev-live-reload, v0.47.0 (active)
encoding-selector, v0.22.0 (active)
exception-reporting, v0.40.0 (active)
find-and-replace, v0.201.1 (inactive)
fuzzy-finder, v1.4.0 (active)
git-diff, v1.1.0 (active)
go-to-line, v0.31.0 (inactive)
grammar-selector, v0.48.2 (active)
image-view, v0.59.0 (active)
incompatible-packages, v0.26.1 (active)
keybinding-resolver, v0.35.0 (active)
line-ending-selector, v0.5.0 (active)
link, v0.31.1 (inactive)
markdown-preview, v0.158.0 (active)
metrics, v1.0.0 (active)
notifications, v0.65.1 (active)
open-on-github, v1.2.0 (inactive)
package-generator, v1.0.0 (inactive)
settings-view, v0.242.2-hotfix1 (active)
snippets, v1.0.2 (active)
spell-check, v0.68.2 (active)
status-bar, v1.4.1 (active)
styleguide, v0.47.0 (active)
symbols-view, v0.113.1 (inactive)
tabs, v0.101.0 (active)
timecop, v0.33.2 (active)
tree-view, v0.209.3 (active)
update-package-dependencies, v0.10.0 (active)
welcome, v0.35.1 (active)
whitespace, v0.33.0 (active)
wrap-guide, v0.38.2 (active)
language-c, v0.52.1 (active)
language-clojure, v0.21.0 (active)
language-coffee-script, v0.47.2 (active)
language-csharp, v0.12.1 (active)
language-css, v0.37.1 (active)
language-gfm, v0.88.0 (active)
language-git, v0.15.0 (active)
language-go, v0.42.1 (active)
language-html, v0.45.1 (active)
language-hyperlink, v0.16.0 (active)
language-java, v0.23.0 (active)
language-javascript, v0.119.0 (active)
language-json, v0.18.2 (active)
language-less, v0.29.5 (active)
language-make, v0.22.2 (active)
language-mustache, v0.13.0 (active)
language-objective-c, v0.15.1 (active)
language-perl, v0.35.0 (active)
language-php, v0.37.2 (active)
language-property-list, v0.8.0 (active)
language-python, v0.45.0 (active)
language-ruby, v0.69.0 (active)
language-ruby-on-rails, v0.25.0 (active)
language-sass, v0.56.0 (active)
language-shellscript, v0.22.4 (active)
language-source, v0.9.0 (active)
language-sql, v0.23.0 (active)
language-text, v0.7.1 (active)
language-todo, v0.28.0 (active)
language-toml, v0.18.0 (active)
language-xml, v0.34.9 (active)
language-yaml, v0.26.0 (active)

# Dev
No dev packages
hirenraj commented 7 years ago

i am having the same issue

pseudohash commented 7 years ago

Not sure if this is going to help anyone, but: I had the same error and it appears it is because the perl project folder I was using was not initialized as a git repository :). Per the atom-perl-prove docs "When activated, this package will check what the base directory for the git repository for the current file"

Basically it appears to look up some settings in the git repository files because it assumes you are using a git repo. IF this is the case then.....you need to add/convert your perl project to use git and be a git repository (you don't have to check it into github)

On the OS I have this installed: git <- I believe almost any version or package that's "git" for your OS will contain the "git" executable, which is what you need.

In Atom I have these packages installed and configured: git-plus <- I have multiple config changes in git and in the template, your mileage may vary. You don't need to as you can look up all the "git" commands to execute to perform the same steps, but the instructions below are what I did using this template

atom-perl-prove <- validate/configure the path to the "prove" executable for my system

Setup: In Atom, open the folder/project where your perl module/scripts are that contains the "t" directory (or whatever directory above where the perl tests are located, don't go into the test directory itself). Keep this project/folder selected/open in Atom for the steps below.

  1. Execute a git 'init' to prep the folder/repo for git integration.

    • In Atom Editor -> Control-Shift-P to bring up search bar
    • Search for: "git plus: Init"
    • Click on it. It should succeed and generate several new files in your project folder/repo
  2. Use git to commit the new files.

    • In Atom Editor -> Control-Shift-P to bring up search bar
    • Search for: "git plus: add all and commit"
    • Click on it. It pops up a window to add commit notes. Just add a note like "git repo init" and save the file with Control-s.
  3. Retry running tests using atom-perl-prove

    • In Atom Editor -> Control-Shift-P to bring up search bar
    • Search for: "atom perl prove: run tests"
    • Click on it. tests should run...hopefully

UPDATE: I found this error started occurring again. Looking at the error: "TypeError: Cannot read property 'getPath' ...." and the atom-perl-prove.coffee file, on line 66: base_path = this.execSync("/usr/bin/git", new Directory(atom.workspace.getActiveTextEditor().getPath()).getParent().getPath(), "", ["rev-parse", "--show-toplevel"]).stdout.trim()

It appears the issue is with the "atom.workspace.getActiveTextEditor...." part. When I got the error I didn't have any of the project/repository files open in the editor (so there are no active TextEditors in my workspace). I opened a top-level file in my workspace and re-ran "Atom Perl Prove: Run tests" and now it works. So have a file open from the project as well.

tobyink commented 4 years ago

No thanks. I don't want to have to use git to use prove.