当我运行 Cypress 组件测试时,有时我会遇到以下情况:
\n17:34:59 [vite] \xe2\x9c\xa8 new dependencies optimized: vuetify/components, vuetify/lib/components/VAppBar/index.mjs, vuetify/lib/components/VDivider/index.mjs, vuetify/lib/components/VToolbar/index.mjs, @vueuse/core\n17:34:59 [vite] \xe2\x9c\xa8 optimized dependencies changed. reloading\n\n1) An uncaught error was detected outside of a test\nRun Code Online (Sandbox Code Playgroud)\n测试失败...如果我第二次重新启动测试,一切正常:所有测试都通过。\n我可以采取什么措施来防止这种情况发生?
\n我的cypress.config.ts很简单:
export default defineConfig({\n video: false,\n env: {\n codeCoverage: {\n exclude: ['cypress/**/*.*', 'src/**/*.cy.ts'],\n },\n },\n component: {\n devServer: {\n framework: 'vue',\n bundler: 'vite',\n },\n setupNodeEvents(on, config) {\n registerCodeCoverageTasks(on, config)\n\n return config\n },\n },\n})\nRun Code Online (Sandbox Code Playgroud)\n我的也是如此vite.config.ts:
export default defineConfig({\n plugins: [\n vue(), …Run Code Online (Sandbox Code Playgroud) 我有这两节课:
public class ClassA extends [...] implements [...] {
@ManyToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinTable(name = JOIN_TABLE_NAME,
joinColumns = @JoinColumn(name = COLUMN_REF_A, referencedColumnName = COLUMN_ID_A),
inverseJoinColumns = @JoinColumn(name = COLUMN_REF_B, referencedColumnName = COLUMN_ID_B))
private List<ClassB> fieldClassB;
}
public class ClassB extends [...] implements [...] {
@ManyToMany(fetch = FetchType.LAZY, mappedBy = "fieldClassB", cascade = CascadeType.ALL)
private List<ClassA> fieldClassA;
}
Run Code Online (Sandbox Code Playgroud)
当我删除ClassB(通过spring数据jpa存储库)时,Hibernate也会删除的实例ClassA,而我只希望JOIN_TABLE_NAME删除表中的行(另一个问题是,由于级联模式,删除ClassA实体还会删除其他ClassB引用的对象通过这些ClassA)。
有什么方法可以解决这个问题,而不必创建连接实体并@ManyToMany通过@OneToMany引用新的连接实体来替换注释?
我正在开发一个使用 JDK8 运行的项目,我们希望将其迁移到 OpenJDK11。
但是,有一些遗留代码可以在运行时动态创建枚举(使用反射和sun.reflect.*包):
public class EnumUtil {
static Object makeEnum(...) {
...
enumClass.cast(sun.reflect.ReflectionFactory.getReflectionFactory() .newConstructorAccessor(constructor).newInstance(params));
}
}
Run Code Online (Sandbox Code Playgroud)
或者
// before, field is made accessible, the modifier too
sun.reflect.FieldAccessor fieldAccessor = sun.reflect.ReflectionFactory.getReflectionFactory().newFieldAccessor(field, false);
field.set(target, value);
Run Code Online (Sandbox Code Playgroud)
例如,假设我们有枚举AEnum:
public enum AEnum {
; // no values at compile time
private String label;
private AEnum (String label) {
this.label = label;
}
Run Code Online (Sandbox Code Playgroud)
然后,我们添加这样的枚举值:
EnumUtil.addEnum(MyEnum.class, "TEST", "labelTest");
Run Code Online (Sandbox Code Playgroud)
最后,在运行时,我们有一个带有 label = labelTest 的值AEnum.TEST(不是通过直接调用,而是通过)。Enum.valueOf
不幸的是,sun.reflect.*OpenJDK11 中不再提供类。
我尝试过使用 …
java ×3
cypress ×1
debugging ×1
enums ×1
hibernate ×1
openjdk-11 ×1
reflection ×1
spring ×1
vite ×1
vue.js ×1
vuetify.js ×1