The following forum message was posted by at
http://sourceforge.net/projects/pydev/forums/forum/293649/topic/4431233:
I have looking for the best way to integrate nosetests with PyDev.
I have been able to make it work as a Builder, but that doesn't put Markers
on your code where it failed.
So, I am looking at PyDev Scripting with Jython.
I started with a script that I found on StackOverflow, but it didn't work --
so I added some debug code to print out the types of objects and their
attributes
-- but they don't seem to have any attributes!
( the dir function returns nothing?, and type(x) often returns:
org.python.core.PyJavaInstance )
Maybe I just don't "get" how Jython works?
Maybe I need to know how PyDev works, and how Eclipse works?
How can I figure out how to make this work if I can't debug it, and I can't
see the type or attributes of the objects?
Does anyone else already have a Jython script similar to this, that would run
tests and add Markers to the code?
Here's what I have so far, which started as a copy from a StackOverflow answer,
with my attempts at introspection thrown in:
[code]
print '----- nicks_pydev_plugins / pyedit_nose ---------'
assert cmd is not None
assert editor is not None
def show(x):
print '----------'
print 'SHOW:',type(x)
for a in dir(x):
print a, getattr(x,a)
print '----------'
if cmd == 'onSave':
from java.lang import Runtime
from java.io import BufferedReader
from java.io import InputStreamReader
from org.eclipse.core.resources import ResourcesPlugin
from org.eclipse.core.resources import IMarker
from org.eclipse.core.resources import IResource
runtime = Runtime.getRuntime()
show(runtime)
proc = Runtime.getRuntime().exec('nosetests
/home/nick/workspace/couchtest')
show(proc)
show(proc.inputStream)
show(cmd)
extra_message
= BufferedReader(InputStreamReader(proc.inputStream)).readLine()
show(extra_message)
show('String')
if extra_message:
print extra_message
r = ResourcesPlugin.getWorkspace().getRoot()
for marker in r.findMarkers(IMarker.PROBLEM, False,
IResource.DEPTH_INFINITE):
msg = marker.getAttribute(IMarker.MESSAGE)
if msg:
if msg.startswith("Some test failed!"):
marker.delete()
for rr in r.getProjects():
marker = rr.createMarker(IMarker.PROBLEM)
marker.setAttribute(IMarker.MESSAGE, "Some test failed! " +
extra_message)
marker.setAttribute(IMarker.PRIORITY, IMarker.PRIORITY_HIGH)
marker.setAttribute(IMarker.SEVERITY, IMarker.SEVERITY_ERROR)
[/code]
...and here is the output:
[code]----- nicks_pydev_plugins / pyedit_nose ---------
----------
SHOW: org.python.core.PyJavaInstance
----------
----------
SHOW: org.python.core.PyJavaInstance
----------
----------
SHOW: org.python.core.PyJavaInstance
----------
----------
SHOW: org.python.core.PyString
----------
----------
SHOW: org.python.core.PyNone
----------
----------
SHOW: org.python.core.PyString
----------[/code]
------------------------------------------------------------------------------
Enable your software for Intel(R) Active Management Technology to meet the
growing manageability and security demands of your customers. Businesses
are taking advantage of Intel(R) vPro (TM) technology - will your software
be a part of the solution? Download the Intel(R) Manageability Checker
today! http://p.sf.net/sfu/intel-dev2devmar
_______________________________________________
Pydev-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/pydev-users