小编Car*_*bés的帖子

如何编写Jest配置文件

我试图将配置文件传递给Jest,以便仅从给定目录运行测试.

根据文档,您可以使用config.testPathDirs:https://facebook.github.io/jest/docs/api.html#config-testpathdirs-array-string,您可以调用jest --config=<config-file>.

遗憾的是,文档中没有包含配置文件外观的任何描述.

我在一个jest-config.js文件中尝试了这两个选项:

testPathDirs = ['coredata/src'];
Run Code Online (Sandbox Code Playgroud)

config.testPathDirs(['coredata/src']);
Run Code Online (Sandbox Code Playgroud)

跑了:

$ jest --config=jest-config.js
Run Code Online (Sandbox Code Playgroud)

...但我得到这种类型的错误:

$ jest --config=jest-config.js
Using Jest CLI v0.4.0
Failed with unexpected error.

/Users/carles/dev/azazo/coredata/node_modules/jest-cli/src/jest.js:179
      throw error;
            ^
SyntaxError: Unexpected token c
    at Object.parse (native)
    at /Users/carles/dev/azazo/coredata/node_modules/jest-cli/src/lib/utils.js:291:23
    at _fulfilled (/Users/carles/dev/azazo/coredata/node_modules/jest-cli/node_modules/q/q.js:798:54)
    at self.promiseDispatch.done (/Users/carles/dev/azazo/coredata/node_modules/jest-cli/node_modules/q/q.js:827:30)
    at Promise.promise.promiseDispatch (/Users/carles/dev/azazo/coredata/node_modules/jest-cli/node_modules/q/q.js:760:13)
    at /Users/carles/dev/azazo/coredata/node_modules/jest-cli/node_modules/q/q.js:574:44
    at flush (/Users/carles/dev/azazo/coredata/node_modules/jest-cli/node_modules/q/q.js:108:17)
    at process._tickCallback (node.js:419:13)
Run Code Online (Sandbox Code Playgroud)

javascript jestjs

31
推荐指数
5
解决办法
5万
查看次数

如何计时maven执行的不同阶段

我有一个非常慢的maven构建.我想知道是否有一种方法来分析maven执行,以找出哪些是最耗时的步骤.

稍后我会想要比较旧版本(更快)的版本之间的这些时间,因此理想情况下它们应该是可以比较/差异/绘制的格式.

profiling maven

25
推荐指数
3
解决办法
7958
查看次数

元类的真实世界使用(例如在Python中)

我正在学习Python中的元类.我认为这是一种非常强大的技术,我正在寻找它们的好用途.我想要一些关于使用元类的有用的真实世界示例的反馈.我不是在寻找关于如何编写元类的示例代码(有很多无用的元类的例子),但是你已经应用了这种技术的真实例子,它确实是合适的解决方案.规则是:没有理论上的可能性,但在实际应用中工作的元类.

我将从我所知道的一个例子开始:

  • Django模型,用于声明性编程,其中基类Model使用元类从属性定义中填充有用ORM功能的模型对象.

期待您的贡献.

python metaprogramming

13
推荐指数
1
解决办法
1715
查看次数

用于跟踪子类的通用元类?

我正在尝试编写一个通用的元类来跟踪子类

因为我希望这是通用的,我不想这个元类中硬编码任何类的名字,所以我想出了生成正确的元类,像一些功能:

def make_subtracker(root):
    class SubclassTracker(type):
        def __init__(cls, name, bases, dct):
            print('registering %s' % (name,))
            root._registry.append(cls)
            super(SubclassTracker, cls).__init__(name, bases, dct)
    return SubclassTracker
Run Code Online (Sandbox Code Playgroud)

这样我就可以调用它来为特定的类生成一个元类:

__metaclass__ = make_subtracker(Root)
Run Code Online (Sandbox Code Playgroud)

这是我遇到问题的地方.我不能做到这一点:

class Root(object):
   _registry = []
   __metaclass__ = make_subtracker(Root)
Run Code Online (Sandbox Code Playgroud)

...因为Root我使用时还没有定义make_subtracker(Root).我稍后尝试添加metaclass属性,以便至少可以在子类中应用它:

class Root(object):
   _registry = []

Root.__metaclass__ = make_subtracker(Root)
Run Code Online (Sandbox Code Playgroud)

......但这不起作用.读取类定义时,metaclass有一个特殊的处理,如http://docs.python.org/reference/datamodel.html#customizing-class-creation中所定义

我正在寻找建议来做到这一点(在运行时以一种应用于其子类的方式更改类'元类,或任何其他替代方法).

python metaclass

11
推荐指数
2
解决办法
6029
查看次数

Django ORM处理MySQL BIT(1)字段

在Django应用程序中,我正在尝试访问使用Hibernate(Java ORM)创建的现有MySQL数据库.我使用以下方法反向设计模型:

$ manage.py inspectdb > models.py
Run Code Online (Sandbox Code Playgroud)

这从数据库创建了一个很好的模型文件,很多东西都很好.但我找不到如何正确访问布尔字段,这些字段由Hibernate映射为BIT(1)类型的列.

默认情况下,inspectdb脚本在模型中将这些字段创建为TextField,并添加注释,表示无法可靠地获取字段类型.我将这些更改为BooleanField但是使用admin打开了我的模型对象,但它不起作用(模型对象总是为这些字段获取值true).使用IntegerField也不会起作用(例如在管理员这些字段显示奇怪的非ascii字符).

在不更改数据库的情况下执行此操作的任何提示?(我需要现有的Hibernate映射和Java应用程序仍然可以使用数据库).


更多信息:我将这些字段保留为BooleanField,并使用交互式shell查看获取的值.它们返回为'\ x00'(当Java/Hibernate值为false时)和'\ x01'(当为true时),而不是Python布尔值"True"和"False".

>>> u = AppUser.objects.all()[0]
>>> u.account_expired
'\x00'
>>> u.account_enabled
'\x01'
Run Code Online (Sandbox Code Playgroud)

模型包括:

class AppUser(models.Model):
    account_expired = models.BooleanField()
    account_enabled = models.BooleanField(blank=True)
    # etc...
Run Code Online (Sandbox Code Playgroud)

mysql django orm

7
推荐指数
2
解决办法
2833
查看次数

Maven - 调整报告部分中声明的运行插件的阶段

我试图调整maven插件执行将在maven-2中运行的阶段.

我的具体问题是尝试运行cobertura:instrument绑定到生命周期阶段的步骤process-test-classes,以便它不会与使用aspectj的其他插件冲突(并删除检测代码,从而生成0%的覆盖率报告).但我的问题更通用.

在deafault生命周期内,我通过在插件声明中添加一个执行部分来实现这一目标:

<build>
    <plugins>
        ...
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>cobertura-maven-plugin</artifactId>
            <version>2.4</version>
            <executions>
                <execution>
                    <id>instrument-late</id>
                    <phase>process-test-classes</phase>
                    <goals>
                        <goal>instrument</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
        ...
Run Code Online (Sandbox Code Playgroud)

这样,当我运行mvn test一切正常时,cobertura:仪器在我想要的阶段运行,类得到检测,测试运行与检测类等等.这是汇总输出:

[INFO] [clean:clean {execution: default-clean}]
[INFO] [buildnumber:create {execution: default}]
[INFO] [native2ascii:native2ascii {execution: native2ascii-utf8}]
[INFO] [native2ascii:native2ascii {execution: native2ascii-8859_1}]
[INFO] [resources:resources {execution: default-resources}]
[INFO] [compiler:compile {execution: default-compile}]
[INFO] [jar:jar {execution: lib}]
[INFO] [resources:testResources {execution: default-testResources}]
[INFO] Preparing hibernate3:hbm2ddl
[WARNING] Removing: hbm2ddl from forked lifecycle, to prevent recursive invocation.
[INFO] [buildnumber:create {execution: default}]
[INFO] Change …
Run Code Online (Sandbox Code Playgroud)

maven-2 cobertura maven-plugin maven

7
推荐指数
1
解决办法
3324
查看次数

如何在Django ORM中更改PostgreSQL的默认空排序行为

默认情况下,PostgreSQL将NULL值视为最高值,因此将它们排序为降序查询,最后排序为升序查询.

您可以通过指定"NULLS LAST"或"NULLS FIRST"来修改每个查询或索引创建时的此行为.

如何将其与Django ORM结合使用,而无需使用原始查询?即当我添加到我的query_set之类的东西时,我qs.order_by("-publish_start")如何指定空值的排序?或者,作为替代方案,在字段/索引声明时.

django postgresql orm

7
推荐指数
1
解决办法
2146
查看次数

Django Rest Framework JWT

我正在使用Django Rest Framework为我的应用程序构建API,并希望实现DjangoRestFramework-JWT进行令牌认证.这些步骤看起来很简单,但是当我测试端点时,我得到500错误.终端输出是一大堆html说没有提供csrf_token.代码和错误如下.非常感谢您的帮助.

curl -X POST -d "username=admin&password=123abc" http://127.0.0.1:8000/api/token/auth/
Run Code Online (Sandbox Code Playgroud)

CSRF错误

<!DOCTYPE html>
<html lang="en">
    <head>
      <meta http-equiv="content-type" content="text/html; charset=utf-8">
      <meta name="robots" content="NONE,NOARCHIVE">
      <title>403 Forbidden</title>
    </head>
    <body>
        <div id="summary">
            <h1>Forbidden <span>(403)</span></h1>
            <p>CSRF verification failed. Request aborted.</p>
            <p>You are seeing this message because this site requires a CSRF cookie when submitting forms. This cookie is required for security reasons, to ensure that your browser is not being hijacked by third parties.</p>
            <p>If you have configured your browser to disable cookies, please re-enable …
Run Code Online (Sandbox Code Playgroud)

python django auth-token jwt django-rest-framework

7
推荐指数
1
解决办法
3497
查看次数

在Hibernate中指定"一起独特"的限制

我有一个实体,我想指定一个限制,两个字段应该有一个唯一的对值.例如,一个字段是所有者,另一个字段是名称,我想要一个限制,即(所有者,名称)的组合应该是唯一的.但我不想让这些成为复合主键:

@Entity
@Table(name="keyfile")
public class KeyFile {

   @Id @GeneratedValue(strategy=GenerationType.AUTO)
   private Long id;
   @ManyToOne @ForeignKey(name="FK_SIGNATUREID_USER")
   private User owner;
   @Column(nullable=false,length=80)
   private String name;
}
Run Code Online (Sandbox Code Playgroud)

如何使用Hibernate注释指定此限制?

hibernate

3
推荐指数
1
解决办法
1773
查看次数