我一直在尝试记录基于MongoEngine的应用程序,但是我在Document类上记录属性时遇到了问题.
我采用了正确的语法,如下所示:
class Asset(Document):
#: This is the URI of the document
uri = StringField()
Run Code Online (Sandbox Code Playgroud)
我已经尝试过各种记录这些属性的方法,我发现这些属性甚至添加了一个不是MongoEngine字段的属性,只是为了确保这不是问题所在:
class Asset(Document):
"""
The representation of a file uploaded into the data store.
"""
#: This is a test attribute.
foo = 'bar'
"""baz?"""
#: This is a URI.
uri = StringField(required=True)
"""This is a URI """
Run Code Online (Sandbox Code Playgroud)
我已在相应的.rst文件中尝试了各种指令组合.目前它看起来像这样:
.. currentmodule:: mymodule.asset
.. autoclass:: Asset
.. autoattribute:: Asset.foo
.. autoattribute:: Asset.uri
Run Code Online (Sandbox Code Playgroud)
输出不是很令人满意:该foo属性根本没有显示文档,而uri字段有MongoEngine的"一个unicode字符串字段".(StringField该类文档)作为文档.此外,属性文档不会放在类的"下"(与automodule +:members: - 一起输出所有带有MongoEngine描述的字段)
我想念狮身人面像扩展吗?或者我搞砸了语法?
我已经分叉了一个 Atlassian Stash 插件用于构建服务器集成,它使用 ActiveObjects 组件来存储数据。我遇到以下问题:
如果我遵循其他字段并为 OneToMany 字段添加 getter 和 setter,如下所示
@OneToMany
TestMapping[] getTestMapping();
void setTestMapping(TestMapping[] powerMappings);
Run Code Online (Sandbox Code Playgroud)
使用实体时出现以下异常:
[INFO] [talledLocalContainer] Caused by: java.lang.RuntimeException: Unrecognized type: [Lsome.package.TestMapping;
[INFO] [talledLocalContainer] at net.java.ao.types.TypeManager.getType(TypeManager.java:68) ~[na:na]
[INFO] [talledLocalContainer] at net.java.ao.schema.SchemaGenerator.getSQLTypeFromMethod(SchemaGenerator.java:481) ~[na:na]
Run Code Online (Sandbox Code Playgroud)
谷歌搜索这个问题只找到了删除 setter 的解决方案,就像这篇文章中建议的那样。但是,如果配置已存在,则无法设置该字段。我不认为删除 ActiveObject 并保存新的 ActiveObject 是正确的方法。
如何解决这个问题?或者,如果不可能,如何在不使用 ActiveObjects 中的 setter 的情况下更新现有对象?
当我尝试在android上运行insturmentation测试时,我遇到了错误.我编写了一个名为AudioPlayerActivity的Activity,它位于com.mycompany.mobile.android.gui包中,现在我正在尝试测试该项目的GUI,并且我运行的是以下错误:
java.lang.RuntimeException:无法解析以下活动:Intent {act = android.intent.action.MAIN flg = 0x10000000 cmp = com.mycompany.mobile.android.gui/.AudioPlayerActivity}
我已经阅读了这个问题,并遵循了那里的建议,但无济于事.我也搜索了错误,但没有找到任何帮助.
这是测试项目的AndroidManifest.xml的样子:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.mycompany.mobile.android.gui"
android:versionCode="1"
android:versionName="1.0" >
<instrumentation
android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.mycompany.mobile.android.gui" />
<application>
<uses-library android:name="android.test.runner" />
</application>
<uses-sdk android:targetSdkVersion="7" />
<supports-screens android:anyDensity="true" />
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
</manifest>
Run Code Online (Sandbox Code Playgroud)
这是我的仪器测试.
包com.mycompany.mobile.android.gui;
import android.test.ActivityInstrumentationTestCase2;
import com.mycompany.mobile.android.gui.AudioPlayerActivity;
public class TestMusicPlayerActivityTest extends ActivityInstrumentationTestCase2<AudioPlayerActivity> {
public TestMusicPlayerActivityTest() {
super("com.mycompany.mobile.android.gui", AudioPlayerActivity.class);
}
public TestMusicPlayerActivityTest(String name) {
super("com.mycompany.mobile.android.gui", AudioPlayerActivity.class);
}
public TestMusicPlayerActivityTest(String pkg, Class<AudioPlayerActivity> activityClass) {
super("com.mycompany.mobile.android.gui", AudioPlayerActivity.class);
} …Run Code Online (Sandbox Code Playgroud)